mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
formatter: add pickle format
This gives convenient Python2 output. Python 3 users will need encoding=bytes.
This commit is contained in:
parent
aa7d73cbbb
commit
8a32bb8140
@ -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 @@ class debugformatter(baseformatter):
|
||||
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 @@ def formatter(ui, topic, opts):
|
||||
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 @@ Issue294: hg remove --after dir fails when dir.* also exists
|
||||
../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:
|
||||
}
|
||||
]
|
||||
|
||||
$ 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
|
||||
|
Loading…
Reference in New Issue
Block a user