» Using perfarce with Mercurial 1.9
If you’re in the kind of situation of using perfarce with Perforce, after upgrade to Mercurial 1.9, you may need the patch at this moment(perfarce changeset c05711ba688f):
diff -r c05711ba688f perfarce.py
--- a/perfarce.py Fri Apr 15 14:22:16 2011 +0100
+++ b/perfarce.py Wed Jul 06 11:04:34 2011 +0800
@@ -77,17 +77,17 @@ Five built-in commands are overridden:
the p4 depot. Directory and filename case is preserved.
These two setting are workarounds to handle Perforce depots
containing a path spelled differently from file to file
(e.g. path/foo and PAth/bar are in the same directory),
or where the same file may be spelled differently from time
to time (e.g. path/foo and path/FOO are the same object).
'''
-from mercurial import cmdutil, commands, context, copies, encoding, error, extensions, hg, node, repo, util, url
+from mercurial import cmdutil, commands, context, copies, encoding, error, extensions, hg, node, repo, util, scmutil, url
from mercurial.node import hex, short
from mercurial.i18n import _
import marshal, tempfile, os, re, string
def uisetup(ui):
'''monkeypatch pull and push for p4:// support'''
@@ -1279,27 +1279,27 @@ def push(original, ui, repo, dest=None,
try:
# now add/edit/delete the files
if mod:
modal(_('opening for edit: %s\n'), 'edit -c %s' % use, mod, client.encodename)
if mod or add:
ui.note(_('retrieving file contents...\n'))
- opener = util.opener(client.rootpart)
+ opener = scmutil.opener(client.rootpart)
for name, mode in mod + add:
ui.debug(_('writing: %s\n') % name)
if 'l' in mode:
opener.symlink(ctx[name].data(), name)
else:
fp = opener(name, mode="w")
fp.write(ctx[name].data())
fp.close()
- util.set_flags(client.localpath(name), 'l' in mode, 'x' in mode)
+ util.setflags(client.localpath(name), 'l' in mode, 'x' in mode)
if add:
modal(_('opening for add: %s\n'), 'add -f -c %s' % use, add, lambda n:n)
if ntg:
ui.note(_('opening for integrate: %s\n') % ' '.join(f[1] for f in ntg))
for f in ntg:
client.runs('integrate -c %s %s %s' % (use, f[0], f[1]))







