[PATCH 5 of 8] histedit: allow "-" as a command file
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Apr 16 14:20:34 CDT 2013
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1366138117 -7200
# Node ID df34ccbcce657753a6311b895278f6f82e629035
# Parent bc6d6eba699fa8c6705c6888bc823536b40172c0
histedit: allow "-" as a command file
When "-" is specified as a command file, we read rules from stdin. We just
altered a test to demo the behavior, but most of them could benefit from this.
There is minor change in test output resulting from the fact we do not overwrite
the editor anyway.
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -141,10 +141,11 @@ repo, you can add a ``--force`` option.
try:
import cPickle as pickle
except ImportError:
import pickle
import os
+import sys
from mercurial import cmdutil
from mercurial import discovery
from mercurial import error
from mercurial import copies
@@ -513,11 +514,14 @@ def histedit(ui, repo, *parent, **opts):
# surprising happens.
f = open(repo.join('histedit-last-edit.txt'), 'w')
f.write(rules)
f.close()
else:
- f = open(rules)
+ if rules == '-':
+ f = sys.stdin
+ else:
+ f = open(rules)
rules = f.read()
f.close()
rules = [l for l in (r.strip() for r in rules.splitlines())
if l and not l[0] == '#']
rules = verifyrules(rules, repo, ctxs)
diff --git a/tests/test-histedit-fold.t b/tests/test-histedit-fold.t
--- a/tests/test-histedit-fold.t
+++ b/tests/test-histedit-fold.t
@@ -48,31 +48,29 @@ Initial log
o 1:d2ae7f538514 b'
|
o 0:cb9a9f314b8b a'
- $ EDITED="$TESTTMP/editedhistory"
- $ cat > $EDITED <<EOF
+ $ hg histedit 177f92b77385 --commands - 2>&1 <<EOF | fixbundle
> pick e860deea161a e
> pick 652413bf663e f
> fold 177f92b77385 c
> pick 055a42cdd887 d
> EOF
- $ HGEDITOR="cat \"$EDITED\" > " hg histedit 177f92b77385 2>&1 | fixbundle
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
log after edit
$ hg log --graph
- @ 4:7e0a290363ed d'
+ @ 4:9c277da72c9b d'
|
- o 3:5e24935bad3d pick e860deea161a e'
+ o 3:6de59d13424a f'
|
o 2:ee283cb5f2d5 e'
|
o 1:d2ae7f538514 b'
|
@@ -90,11 +88,11 @@ post-fold manifest
check histedit_source
$ hg log --debug --rev 3
- 3:5e24935bad3d pick e860deea161a e'
+ 3:6de59d13424a f'
$ cd ..
folding and creating no new change doesn't break:
-------------------------------------------------
@@ -121,10 +119,11 @@ folded content is dropped during a merge
o 1:617f94f13c0f +4'
|
o 0:0189ba417d34 1+2+3'
+ $ EDITED="$TESTTMP/editedhistory"
$ cat > $EDITED <<EOF
> pick 617f94f13c0f 1 +4
> drop 888f9082bf99 2 +5
> fold 251d831eeec5 3 +6
> EOF
More information about the Mercurial-devel
mailing list