Skip to content
Snippets Groups Projects
Commit 968247e8 authored by Matt Mackall's avatar Matt Mackall
Browse files

formatter: add pickle format

This gives convenient Python2 output. Python 3 users will need encoding=bytes.
parent 7a7eed51
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,7 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
import cPickle
from i18n import _
import encoding, util
......@@ -77,6 +78,16 @@
baseformatter.end(self)
self._ui.write("]\n")
class pickleformatter(baseformatter):
def __init__(self, ui, topic, opts):
baseformatter.__init__(self, ui, topic, opts)
self._data = []
def _showitem(self):
self._data.append(self._item)
def end(self):
baseformatter.end(self)
self._ui.write(cPickle.dumps(self._data))
class jsonformatter(baseformatter):
def __init__(self, ui, topic, opts):
baseformatter.__init__(self, ui, topic, opts)
......@@ -108,6 +119,8 @@
template = opts.get("template", "")
if template == "json":
return jsonformatter(ui, topic, opts)
elif template == "pickle":
return pickleformatter(ui, topic, opts)
elif template == "debug":
return debugformatter(ui, topic, opts)
elif template != "":
......
......@@ -128,4 +128,14 @@
../t.h (glob)
../t/e.h (glob)
$ hg files
../b
../dir.h/foo
../t.h
../t/b
../t/e.h
../t/x
$ hg files .
[1]
$ cd ../..
......@@ -202,6 +202,12 @@
}
]
$ hg status -A -Tpickle > pickle
>>> import pickle
>>> print sorted((x['status'], x['path']) for x in pickle.load(open("pickle")))
[('!', 'deleted'), ('?', 'pickle'), ('?', 'unknown'), ('A', 'added'), ('A', 'copied'), ('C', '.hgignore'), ('C', 'modified'), ('I', 'ignored'), ('R', 'removed')]
$ rm pickle
$ echo "^ignoreddir$" > .hgignore
$ mkdir ignoreddir
$ touch ignoreddir/file
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment