From a8c0b74718d9986aec758e4a834a2d7363b16f24 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 16:14:40 -0500 Subject: remote-bzr: fix export of utf-8 authors Reported-by: Joakim Verona Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/git-remote-bzr | 1 + contrib/remote-helpers/test-bzr.sh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index c3a3cac77b..08b0b61ee3 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -168,6 +168,7 @@ class Parser: if not m: return None _, name, email, date, tz = m.groups() + name = name.decode('utf-8') committer = '%s <%s>' % (name, email) tz = int(tz) tz = ((tz / 100) * 3600) + ((tz % 100) * 60) diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh index dce281f911..b0d70fd339 100755 --- a/contrib/remote-helpers/test-bzr.sh +++ b/contrib/remote-helpers/test-bzr.sh @@ -358,4 +358,34 @@ test_expect_success 'strip' ' test_cmp expected actual ' +test_expect_success 'export utf-8 authors' ' + test_when_finished "rm -rf bzrrepo gitrepo && LC_ALL=C && unset GIT_COMMITTER_NAME" && + + LC_ALL=en_US.UTF-8 + export LC_ALL + + GIT_COMMITTER_NAME="Grégoire" + export GIT_COMMITTER_NAME + + bzr init bzrrepo && + + ( + git init gitrepo && + cd gitrepo && + echo greg >> content && + git add content && + git commit -m one && + git remote add bzr "bzr::../bzrrepo" && + git push bzr + ) && + + ( + cd bzrrepo && + bzr log | grep "^committer: " > ../actual + ) && + + echo "committer: Grégoire " > expected && + test_cmp expected actual +' + test_done -- cgit v1.2.1 From a11b0ac9e17459c83d89844761ca0c132b4d324c Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 14:23:07 -0500 Subject: remote-bzr: make bzr branches configurable per-repo Different repositories have different branches, some are are even branches themselves. Reported-by: Peter Niederlag Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/git-remote-bzr | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index 08b0b61ee3..a7d2ac9f93 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -13,8 +13,11 @@ # or # % git clone bzr::lp:myrepo # -# If you want to specify which branches you want track (per repo): -# git config remote-bzr.branches 'trunk, devel, test' +# If you want to specify which branches you want to track (per repo): +# % git config remote.origin.bzr-branches 'trunk, devel, test' +# +# Where 'origin' is the name of the repository you want to specify the +# branches. # import sys @@ -852,9 +855,13 @@ def get_repo(url, alias): except bzrlib.errors.NoRepositoryPresent: pass - wanted = get_config('remote-bzr.branches').rstrip().split(', ') + wanted = get_config('remote.%s.bzr-branches' % alias).rstrip().split(', ') # stupid python wanted = [e for e in wanted if e] + if not wanted: + wanted = get_config('remote-bzr.branches').rstrip().split(', ') + # stupid python + wanted = [e for e in wanted if e] if not wanted: try: -- cgit v1.2.1 From 0fdc9b093959a6a0037e898744f22c7604278d97 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 14:23:08 -0500 Subject: remote-hg: fix test It wasn't being checked properly before; those refs never existed. Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/test-hg.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index f7ce8aa853..cbf86170d5 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -580,8 +580,6 @@ test_expect_success 'remote big push fetch first' ' check_push 1 --all <<-EOF master good_bmark - new_bmark:new - new_branch:new bad_bmark:fetch-first branches/bad_branch:festch-first EOF -- cgit v1.2.1 From 8493fd14b27861d2f542fff38ea76c91ba2250bd Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 14:23:09 -0500 Subject: remote-hg: add missing &&s in the test Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/test-hg.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index cbf86170d5..94b0bba825 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -577,7 +577,7 @@ test_expect_success 'remote big push fetch first' ' echo five > content && git commit -q -a -m five && - check_push 1 --all <<-EOF + check_push 1 --all <<-EOF && master good_bmark bad_bmark:fetch-first @@ -633,7 +633,7 @@ test_expect_failure 'remote big push dry-run' ' ( cd gitrepo && - check_push 0 --dry-run --all <<-EOF + check_push 1 --dry-run --all <<-EOF && master good_bmark branches/good_branch -- cgit v1.2.1 From 2a6981833df11d82a956ab17f2284418b6eecafe Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 14:23:10 -0500 Subject: remote-hg: improve basic test It appears 'let' is not present in all shells. Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/test-hg.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index 94b0bba825..5a6f7451ba 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -75,10 +75,10 @@ check_push () { grep "^ [a-f0-9]*\.\.[a-f0-9]* *${branch} -> ${branch}$" error || ref_ret=1 ;; esac - let 'ref_ret' && echo "match for '$branch' failed" && break + test $ref_ret -ne 0 && echo "match for '$branch' failed" && break done - if let 'expected_ret != ret || ref_ret' + if test $expected_ret -ne $ret -o $ref_ret -ne 0 then return 1 fi -- cgit v1.2.1 From 670dda85d652cc1d2574de584fef9d3baeb0969d Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 14:23:11 -0500 Subject: remote-helpers: trivial style fixes In accordance with pep8. Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/git-remote-bzr | 4 ++-- contrib/remote-helpers/git-remote-hg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index a7d2ac9f93..e4fdfb0a19 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -488,7 +488,7 @@ class CustomTree(): add_entry(fid, dirname, 'directory') return fid - def add_entry(fid, path, kind, mode = None): + def add_entry(fid, path, kind, mode=None): dirname, basename = os.path.split(path) parent_fid = get_parent(dirname, basename) @@ -509,7 +509,7 @@ class CustomTree(): self.files[path] = [change[0], None] changes.append(change) - def update_entry(fid, path, kind, mode = None): + def update_entry(fid, path, kind, mode=None): dirname, basename = os.path.split(path) parent_fid = get_parent(dirname, basename) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 0194c67fb1..5734049d0b 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -1066,7 +1066,7 @@ def do_export(parser): author, msg = parsed_tags.get(tag, (None, None)) if mode == 'git': if not msg: - msg = 'Added tag %s for changeset %s' % (tag, node[:12]); + msg = 'Added tag %s for changeset %s' % (tag, node[:12]) tagnode, branch = write_tag(parser.repo, tag, node, msg, author) p_revs[tagnode] = 'refs/heads/branches/' + gitref(branch) else: -- cgit v1.2.1 From 641a2b5bee4c759c4dd36b5ad9e7f159aca54611 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Wed, 28 Aug 2013 14:23:12 -0500 Subject: remote-helpers: cleanup more global variables They don't need to be specified if they are not going to be set. Suggested-by: Dusty Phillips Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/git-remote-bzr | 29 ----------------------------- contrib/remote-helpers/git-remote-hg | 30 ++---------------------------- 2 files changed, 2 insertions(+), 57 deletions(-) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index e4fdfb0a19..42cec58a00 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -178,11 +178,9 @@ class Parser: return (committer, int(date), tz) def rev_to_mark(rev): - global marks return marks.from_rev(rev) def mark_to_rev(mark): - global marks return marks.to_rev(mark) def fixup_user(user): @@ -237,8 +235,6 @@ def get_filechanges(cur, prev): return modified, removed def export_files(tree, files): - global marks, filenodes - final = [] for path, fid in files.iteritems(): kind = tree.kind(fid) @@ -280,8 +276,6 @@ def export_files(tree, files): return final def export_branch(repo, name): - global prefix - ref = '%s/heads/%s' % (prefix, name) tip = marks.get_tip(name) @@ -382,16 +376,12 @@ def export_branch(repo, name): marks.set_tip(name, revid) def export_tag(repo, name): - global tags, prefix - ref = '%s/tags/%s' % (prefix, name) print "reset %s" % ref print "from :%u" % rev_to_mark(tags[name]) print def do_import(parser): - global dirname - repo = parser.repo path = os.path.join(dirname, 'marks-git') @@ -417,8 +407,6 @@ def do_import(parser): sys.stdout.flush() def parse_blob(parser): - global blob_marks - parser.next() mark = parser.get_mark() parser.next() @@ -429,8 +417,6 @@ def parse_blob(parser): class CustomTree(): def __init__(self, branch, revid, parents, files): - global files_cache - self.updates = {} self.branch = branch @@ -587,9 +573,6 @@ def c_style_unescape(string): return string def parse_commit(parser): - global marks, blob_marks, parsed_refs - global mode - parents = [] ref = parser[1] @@ -661,8 +644,6 @@ def parse_commit(parser): marks.new_mark(revid, commit_mark) def parse_reset(parser): - global parsed_refs - ref = parser[1] parser.next() @@ -678,8 +659,6 @@ def parse_reset(parser): parsed_refs[ref] = mark_to_rev(from_mark) def do_export(parser): - global parsed_refs, dirname - parser.next() for line in parser.each_block('done'): @@ -728,8 +707,6 @@ def do_export(parser): print def do_capabilities(parser): - global dirname - print "import" print "export" print "refspec refs/heads/*:%s/heads/*" % prefix @@ -747,8 +724,6 @@ def ref_is_valid(name): return not True in [c in name for c in '~^: \\'] def do_list(parser): - global tags - master_branch = None for name in branches: @@ -782,8 +757,6 @@ def clone(path, remote_branch): return remote_branch.sprout(bdir, repository=repo) def get_remote_branch(name): - global dirname, branches - remote_branch = bzrlib.branch.Branch.open(branches[name]) if isinstance(remote_branch.user_transport, bzrlib.transport.local.LocalTransport): return remote_branch @@ -825,8 +798,6 @@ def find_branches(repo): yield name, branch.base def get_repo(url, alias): - global dirname, peer, branches - normal_url = bzrlib.urlutils.normalize_url(url) origin = bzrlib.bzrdir.BzrDir.open(url) is_local = isinstance(origin.transport, bzrlib.transport.local.LocalTransport) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 5734049d0b..27f186cd39 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -227,8 +227,6 @@ class Parser: return sys.stdin.read(size) def get_author(self): - global bad_mail - ex = None m = RAW_AUTHOR_RE.match(self.line) if not m: @@ -261,8 +259,6 @@ def fix_file_path(path): return os.path.relpath(path, '/') def export_files(files): - global marks, filenodes - final = [] for f in files: fid = node.hex(f.filenode()) @@ -344,8 +340,6 @@ def fixup_user_hg(user): return (name, mail) def fixup_user(user): - global mode, bad_mail - if mode == 'git': name, mail = fixup_user_git(user) else: @@ -374,7 +368,7 @@ def updatebookmarks(repo, peer): bookmarks.write(repo) def get_repo(url, alias): - global dirname, peer + global peer myui = ui.ui() myui.setconfig('ui', 'interactive', 'off') @@ -416,16 +410,12 @@ def get_repo(url, alias): return repo def rev_to_mark(rev): - global marks return marks.from_rev(rev.hex()) def mark_to_rev(mark): - global marks return marks.to_rev(mark) def export_ref(repo, name, kind, head): - global prefix, marks, mode - ename = '%s/%s' % (kind, name) try: tip = marks.get_tip(ename) @@ -537,12 +527,9 @@ def export_branch(repo, branch): export_ref(repo, branch, 'branches', head) def export_head(repo): - global g_head export_ref(repo, g_head[0], 'bookmarks', g_head[1]) def do_capabilities(parser): - global prefix, dirname - print "import" print "export" print "refspec refs/heads/branches/*:%s/branches/*" % prefix @@ -562,8 +549,6 @@ def branch_tip(branch): return branches[branch][-1] def get_branch_tip(repo, branch): - global branches - heads = branches.get(hgref(branch), None) if not heads: return None @@ -576,7 +561,7 @@ def get_branch_tip(repo, branch): return heads[0] def list_head(repo, cur): - global g_head, bmarks, fake_bmark + global g_head, fake_bmark if 'default' not in branches: # empty repo @@ -592,8 +577,6 @@ def list_head(repo, cur): g_head = (head, node) def do_list(parser): - global branches, bmarks, track_branches - repo = parser.repo for bmark, node in bookmarks.listbookmarks(repo).iteritems(): bmarks[bmark] = repo[node] @@ -661,8 +644,6 @@ def do_import(parser): print 'done' def parse_blob(parser): - global blob_marks - parser.next() mark = parser.get_mark() parser.next() @@ -679,9 +660,6 @@ def get_merge_files(repo, p1, p2, files): files[e] = f def parse_commit(parser): - global marks, blob_marks, parsed_refs - global mode - from_mark = merge_mark = None ref = parser[1] @@ -799,8 +777,6 @@ def parse_commit(parser): marks.new_mark(node, commit_mark) def parse_reset(parser): - global parsed_refs - ref = parser[1] parser.next() # ugh @@ -993,8 +969,6 @@ def check_tip(ref, kind, name, heads): return tip in heads def do_export(parser): - global parsed_refs, bmarks, peer - p_bmarks = [] p_revs = {} -- cgit v1.2.1 From c587d655122a287a6796d493d176128f05374156 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Thu, 29 Aug 2013 17:29:50 -0500 Subject: remote-hg: use notes to keep track of Hg revisions Keep track of Mercurial revisions as Git notes under the 'refs/notes/hg' ref. This way, the user can easily see which Mercurial revision corresponds to certain Git commit. Unfortunately, there's no way to efficiently update the notes after doing an export (push), so they'll have to be updated when importing (fetching). Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/git-remote-hg | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 27f186cd39..3db7bd1e43 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -23,7 +23,11 @@ import subprocess import urllib import atexit import urlparse, hashlib +import time as ptime +# +# If you want to see Mercurial revisions as Git commit notes: +# git config core.notesRef refs/notes/hg # # If you are not in hg-git-compat mode and want to disable the tracking of # named branches: @@ -126,6 +130,7 @@ class Marks: self.rev_marks = {} self.last_mark = 0 self.version = 0 + self.last_note = 0 def load(self): if not os.path.exists(self.path): @@ -137,6 +142,7 @@ class Marks: self.marks = tmp['marks'] self.last_mark = tmp['last-mark'] self.version = tmp.get('version', 1) + self.last_note = tmp.get('last-note', 0) for rev, mark in self.marks.iteritems(): self.rev_marks[mark] = rev @@ -150,7 +156,7 @@ class Marks: self.version = 2 def dict(self): - return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark, 'version' : self.version } + return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark, 'version' : self.version, 'last-note' : self.last_note } def store(self): json.dump(self.dict(), open(self.path, 'w')) @@ -512,6 +518,31 @@ def export_ref(repo, name, kind, head): print "from :%u" % rev_to_mark(head) print + pending_revs = set(revs) - notes + if pending_revs: + note_mark = marks.next_mark() + ref = "refs/notes/hg" + + print "commit %s" % ref + print "mark :%d" % (note_mark) + print "committer remote-hg <> %s" % (ptime.strftime('%s %z')) + desc = "Notes for %s\n" % (name) + print "data %d" % (len(desc)) + print desc + if marks.last_note: + print "from :%u" % marks.last_note + + for rev in pending_revs: + notes.add(rev) + c = repo[rev] + print "N inline :%u" % rev_to_mark(c) + msg = c.hex() + print "data %d" % (len(msg)) + print msg + print + + marks.last_note = note_mark + marks.set_tip(ename, head.hex()) def export_tag(repo, tag): @@ -1113,6 +1144,7 @@ def main(args): global filenodes global fake_bmark, hg_version global dry_run + global notes, alias alias = args[1] url = args[2] @@ -1152,6 +1184,7 @@ def main(args): except: hg_version = None dry_run = False + notes = set() repo = get_repo(url, alias) prefix = 'refs/hg/%s' % alias -- cgit v1.2.1 From ff867963f01ab9b5f1d27ef2e7b255fcb74281d5 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 29 Aug 2013 14:10:04 -0700 Subject: contrib/remote-helpers: style updates for test scripts During the review of the main series it was noticed that these test scripts can use updates to conform to our coding style better, but fixing the style should be done in a patch separate from the main series. This updates the test-*.sh scripts only for style issues: * We do not leave SP between a redirection operator and the filename; * We change line before "then", "do", etc. rather than terminating the condition for "if"/"while" and list for "for" with a semicolon; * When HERE document does not use any expansion, we quote the end marker (e.g. "cat <<\EOF" not "cat < Signed-off-by: Junio C Hamano --- contrib/remote-helpers/test-bzr.sh | 112 +++++++++++----------- contrib/remote-helpers/test-hg-bidi.sh | 52 ++++++----- contrib/remote-helpers/test-hg-hg-git.sh | 156 +++++++++++++++++-------------- contrib/remote-helpers/test-hg.sh | 154 +++++++++++++++--------------- 4 files changed, 248 insertions(+), 226 deletions(-) diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh index b0d70fd339..5c50251783 100755 --- a/contrib/remote-helpers/test-bzr.sh +++ b/contrib/remote-helpers/test-bzr.sh @@ -7,19 +7,21 @@ test_description='Test remote-bzr' . ./test-lib.sh -if ! test_have_prereq PYTHON; then +if ! test_have_prereq PYTHON +then skip_all='skipping remote-bzr tests; python not available' test_done fi -if ! python -c 'import bzrlib'; then +if ! python -c 'import bzrlib' +then skip_all='skipping remote-bzr tests; bzr not available' test_done fi check () { - echo $3 > expected && - git --git-dir=$1/.git log --format='%s' -1 $2 > actual + echo $3 >expected && + git --git-dir=$1/.git log --format='%s' -1 $2 >actual test_cmp expected actual } @@ -29,7 +31,7 @@ test_expect_success 'cloning' ' ( bzr init bzrrepo && cd bzrrepo && - echo one > content && + echo one >content && bzr add content && bzr commit -m one ) && @@ -41,7 +43,7 @@ test_expect_success 'cloning' ' test_expect_success 'pulling' ' ( cd bzrrepo && - echo two > content && + echo two >content && bzr commit -m two ) && @@ -53,13 +55,13 @@ test_expect_success 'pulling' ' test_expect_success 'pushing' ' ( cd gitrepo && - echo three > content && + echo three >content && git commit -a -m three && git push ) && - echo three > expected && - cat bzrrepo/content > actual && + echo three >expected && + cat bzrrepo/content >actual && test_cmp expected actual ' @@ -67,16 +69,16 @@ test_expect_success 'roundtrip' ' ( cd gitrepo && git pull && - git log --format="%s" -1 origin/master > actual + git log --format="%s" -1 origin/master >actual ) && - echo three > expected && + echo three >expected && test_cmp expected actual && (cd gitrepo && git push && git pull) && ( cd bzrrepo && - echo four > content && + echo four >content && bzr commit -m four ) && @@ -86,19 +88,19 @@ test_expect_success 'roundtrip' ' ( cd gitrepo && - echo five > content && + echo five >content && git commit -a -m five && git push && git pull ) && (cd bzrrepo && bzr revert) && - echo five > expected && - cat bzrrepo/content > actual && + echo five >expected && + cat bzrrepo/content >actual && test_cmp expected actual ' -cat > expected <expected <<\EOF 100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content 100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable 120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link @@ -107,7 +109,7 @@ EOF test_expect_success 'special modes' ' ( cd bzrrepo && - echo exec > executable + echo exec >executable chmod +x executable && bzr add executable bzr commit -m exec && @@ -122,21 +124,21 @@ test_expect_success 'special modes' ' ( cd gitrepo && git pull - git ls-tree HEAD > ../actual + git ls-tree HEAD >../actual ) && test_cmp expected actual && ( cd gitrepo && - git cat-file -p HEAD:link > ../actual + git cat-file -p HEAD:link >../actual ) && - printf content > expected && + printf content >expected && test_cmp expected actual ' -cat > expected <expected <<\EOF 100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content 100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable 120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link @@ -147,8 +149,8 @@ test_expect_success 'moving directory' ' ( cd bzrrepo && mkdir movedir && - echo one > movedir/one && - echo two > movedir/two && + echo one >movedir/one && + echo two >movedir/two && bzr add movedir && bzr commit -m movedir && bzr mv movedir movedir-new && @@ -158,7 +160,7 @@ test_expect_success 'moving directory' ' ( cd gitrepo && git pull && - git ls-tree HEAD > ../actual + git ls-tree HEAD >../actual ) && test_cmp expected actual @@ -167,7 +169,7 @@ test_expect_success 'moving directory' ' test_expect_success 'different authors' ' ( cd bzrrepo && - echo john >> content && + echo john >>content && bzr commit -m john \ --author "Jane Rey " \ --author "John Doe " @@ -176,10 +178,10 @@ test_expect_success 'different authors' ' ( cd gitrepo && git pull && - git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual + git show --format="%an <%ae>, %cn <%ce>" --quiet >../actual ) && - echo "Jane Rey , A U Thor " > expected && + echo "Jane Rey , A U Thor " >expected && test_cmp expected actual ' @@ -196,12 +198,12 @@ test_expect_success 'fetch utf-8 filenames' ' bzr init bzrrepo && cd bzrrepo && - echo test >> "ærø" && + echo test >>"ærø" && bzr add "ærø" && - echo test >> "ø~?" && + echo test >>"ø~?" && bzr add "ø~?" && bzr commit -m add-utf-8 && - echo test >> "ærø" && + echo test >>"ærø" && bzr commit -m test-utf-8 && bzr rm "ø~?" && bzr mv "ærø" "ø~?" && @@ -211,9 +213,9 @@ test_expect_success 'fetch utf-8 filenames' ' ( git clone "bzr::bzrrepo" gitrepo && cd gitrepo && - git -c core.quotepath=false ls-files > ../actual + git -c core.quotepath=false ls-files >../actual ) && - echo "ø~?" > expected && + echo "ø~?" >expected && test_cmp expected actual ' @@ -229,7 +231,7 @@ test_expect_success 'push utf-8 filenames' ' bzr init bzrrepo && cd bzrrepo && - echo one >> content && + echo one >>content && bzr add content && bzr commit -m one ) && @@ -238,15 +240,15 @@ test_expect_success 'push utf-8 filenames' ' git clone "bzr::bzrrepo" gitrepo && cd gitrepo && - echo test >> "ærø" && + echo test >>"ærø" && git add "ærø" && git commit -m utf-8 && git push ) && - (cd bzrrepo && bzr ls > ../actual) && - printf "content\nærø\n" > expected && + (cd bzrrepo && bzr ls >../actual) && + printf "content\nærø\n" >expected && test_cmp expected actual ' @@ -256,7 +258,7 @@ test_expect_success 'pushing a merge' ' ( bzr init bzrrepo && cd bzrrepo && - echo one > content && + echo one >content && bzr add content && bzr commit -m one ) && @@ -265,27 +267,27 @@ test_expect_success 'pushing a merge' ' ( cd bzrrepo && - echo two > content && + echo two >content && bzr commit -m two ) && ( cd gitrepo && - echo three > content && + echo three >content && git commit -a -m three && git fetch && git merge origin/master || true && - echo three > content && + echo three >content && git commit -a --no-edit && git push ) && - echo three > expected && - cat bzrrepo/content > actual && + echo three >expected && + cat bzrrepo/content >actual && test_cmp expected actual ' -cat > expected <expected <<\EOF origin/HEAD origin/branch origin/trunk @@ -299,7 +301,7 @@ test_expect_success 'proper bzr repo' ' ( bzr init bzrrepo/trunk && cd bzrrepo/trunk && - echo one >> content && + echo one >>content && bzr add content && bzr commit -m one ) && @@ -307,14 +309,14 @@ test_expect_success 'proper bzr repo' ' ( bzr branch bzrrepo/trunk bzrrepo/branch && cd bzrrepo/branch && - echo two >> content && + echo two >>content && bzr commit -m one ) && ( git clone "bzr::bzrrepo" gitrepo && cd gitrepo && - git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual + git for-each-ref --format "%(refname:short)" refs/remotes/origin >../actual ) && test_cmp expected actual @@ -327,11 +329,11 @@ test_expect_success 'strip' ' bzr init bzrrepo && cd bzrrepo && - echo one >> content && + echo one >>content && bzr add content && bzr commit -m one && - echo two >> content && + echo two >>content && bzr commit -m two ) && @@ -341,18 +343,18 @@ test_expect_success 'strip' ' cd bzrrepo && bzr uncommit --force && - echo three >> content && + echo three >>content && bzr commit -m three && - echo four >> content && + echo four >>content && bzr commit -m four && - bzr log --line | sed -e "s/^[0-9][0-9]*: //" > ../expected + bzr log --line | sed -e "s/^[0-9][0-9]*: //" >../expected ) && ( cd gitrepo && git fetch && - git log --format="%an %ad %s" --date=short origin/master > ../actual + git log --format="%an %ad %s" --date=short origin/master >../actual ) && test_cmp expected actual @@ -372,7 +374,7 @@ test_expect_success 'export utf-8 authors' ' ( git init gitrepo && cd gitrepo && - echo greg >> content && + echo greg >>content && git add content && git commit -m one && git remote add bzr "bzr::../bzrrepo" && @@ -381,10 +383,10 @@ test_expect_success 'export utf-8 authors' ' ( cd bzrrepo && - bzr log | grep "^committer: " > ../actual + bzr log | grep "^committer: " >../actual ) && - echo "committer: Grégoire " > expected && + echo "committer: Grégoire " >expected && test_cmp expected actual ' diff --git a/contrib/remote-helpers/test-hg-bidi.sh b/contrib/remote-helpers/test-hg-bidi.sh index f83d67d74f..e24c51daad 100755 --- a/contrib/remote-helpers/test-hg-bidi.sh +++ b/contrib/remote-helpers/test-hg-bidi.sh @@ -10,12 +10,14 @@ test_description='Test bidirectionality of remote-hg' . ./test-lib.sh -if ! test_have_prereq PYTHON; then +if ! test_have_prereq PYTHON +then skip_all='skipping remote-hg tests; python not available' test_done fi -if ! python -c 'import mercurial'; then +if ! python -c 'import mercurial' +then skip_all='skipping remote-hg tests; mercurial not available' test_done fi @@ -43,7 +45,7 @@ hg_push () { git checkout -q -b tmp && git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && git checkout -q @{-1} && - git branch -q -D tmp 2> /dev/null || true + git branch -q -D tmp 2>/dev/null || true ) } @@ -62,7 +64,7 @@ setup () { echo "tag = -d \"0 0\"" echo "[extensions]" echo "graphlog =" - ) >> "$HOME"/.hgrc && + ) >>"$HOME"/.hgrc && git config --global remote-hg.hg-git-compat true git config --global remote-hg.track-branches true @@ -81,22 +83,22 @@ test_expect_success 'encoding' ' git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add älphà" && GIT_AUTHOR_NAME="tést èncödîng" && export GIT_AUTHOR_NAME && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" && - echo gamma > gamma && + echo gamma >gamma && git add gamma && git commit -m "add gämmâ" && : TODO git config i18n.commitencoding latin-1 && - echo delta > delta && + echo delta >delta && git add delta && git commit -m "add déltà" ) && @@ -105,8 +107,8 @@ test_expect_success 'encoding' ' git_clone hgrepo gitrepo2 && hg_clone gitrepo2 hgrepo2 && - HGENCODING=utf-8 hg_log hgrepo > expected && - HGENCODING=utf-8 hg_log hgrepo2 > actual && + HGENCODING=utf-8 hg_log hgrepo >expected && + HGENCODING=utf-8 hg_log hgrepo2 >actual && test_cmp expected actual ' @@ -117,14 +119,14 @@ test_expect_success 'file removal' ' ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" mkdir foo && - echo blah > foo/bar && + echo blah >foo/bar && git add foo && git commit -m "add foo" && git rm alpha && @@ -137,8 +139,8 @@ test_expect_success 'file removal' ' git_clone hgrepo gitrepo2 && hg_clone gitrepo2 hgrepo2 && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' @@ -150,12 +152,12 @@ test_expect_success 'git tags' ' git init -q gitrepo && cd gitrepo && git config receive.denyCurrentBranch ignore && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git tag alpha && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" && git tag -a -m "added tag beta" beta @@ -165,8 +167,8 @@ test_expect_success 'git tags' ' git_clone hgrepo gitrepo2 && hg_clone gitrepo2 hgrepo2 && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' @@ -178,7 +180,7 @@ test_expect_success 'hg branch' ' git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -q -m "add alpha" && git checkout -q -b not-master @@ -201,8 +203,8 @@ test_expect_success 'hg branch' ' : Back to the common revision && (cd hgrepo && hg checkout default) && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' @@ -214,7 +216,7 @@ test_expect_success 'hg tags' ' git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git checkout -q -b not-master @@ -231,8 +233,8 @@ test_expect_success 'hg tags' ' hg_push hgrepo gitrepo && hg_clone gitrepo hgrepo2 && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' diff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh index 2219284382..a5123ca9ea 100755 --- a/contrib/remote-helpers/test-hg-hg-git.sh +++ b/contrib/remote-helpers/test-hg-hg-git.sh @@ -10,17 +10,20 @@ test_description='Test remote-hg output compared to hg-git' . ./test-lib.sh -if ! test_have_prereq PYTHON; then +if ! test_have_prereq PYTHON +then skip_all='skipping remote-hg tests; python not available' test_done fi -if ! python -c 'import mercurial'; then +if ! python -c 'import mercurial' +then skip_all='skipping remote-hg tests; mercurial not available' test_done fi -if ! python -c 'import hggit'; then +if ! python -c 'import hggit' +then skip_all='skipping remote-hg tests; hg-git not available' test_done fi @@ -66,7 +69,7 @@ hg_push_git () { git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && git branch -D default && git checkout -q @{-1} && - git branch -q -D tmp 2> /dev/null || true + git branch -q -D tmp 2>/dev/null || true ) } @@ -100,7 +103,7 @@ setup () { echo "hgext.bookmarks =" echo "hggit =" echo "graphlog =" - ) >> "$HOME"/.hgrc && + ) >>"$HOME"/.hgrc && git config --global receive.denycurrentbranch warn git config --global remote-hg.hg-git-compat true git config --global remote-hg.track-branches false @@ -121,7 +124,7 @@ test_expect_success 'executable bit' ' ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && chmod 0644 alpha && git add alpha && git commit -m "add alpha" && @@ -133,17 +136,18 @@ test_expect_success 'executable bit' ' git commit -m "clear executable bit" ) && - for x in hg git; do + for x in hg git + do ( hg_clone_$x gitrepo hgrepo-$x && cd hgrepo-$x && hg_log . && hg manifest -r 1 -v && hg manifest -v - ) > output-$x && + ) >output-$x && git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x > log-$x + git_log gitrepo2-$x >log-$x done && test_cmp output-hg output-git && @@ -156,7 +160,7 @@ test_expect_success 'symlink' ' ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && ln -s alpha beta && @@ -164,16 +168,17 @@ test_expect_success 'symlink' ' git commit -m "add beta" ) && - for x in hg git; do + for x in hg git + do ( hg_clone_$x gitrepo hgrepo-$x && cd hgrepo-$x && hg_log . && hg manifest -v - ) > output-$x && + ) >output-$x && git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x > log-$x + git_log gitrepo2-$x >log-$x done && test_cmp output-hg output-git && @@ -186,28 +191,29 @@ test_expect_success 'merge conflict 1' ' ( hg init hgrepo1 && cd hgrepo1 && - echo A > afile && + echo A >afile && hg add afile && hg ci -m "origin" && - echo B > afile && + echo B >afile && hg ci -m "A->B" && hg up -r0 && - echo C > afile && + echo C >afile && hg ci -m "A->C" && hg merge -r1 && - echo C > afile && + echo C >afile && hg resolve -m afile && hg ci -m "merge to C" ) && - for x in hg git; do + for x in hg git + do git_clone_$x hgrepo1 gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > hg-log-$x && - git_log gitrepo-$x > git-log-$x + hg_log hgrepo2-$x >hg-log-$x && + git_log gitrepo-$x >git-log-$x done && test_cmp hg-log-hg hg-log-git && @@ -220,28 +226,29 @@ test_expect_success 'merge conflict 2' ' ( hg init hgrepo1 && cd hgrepo1 && - echo A > afile && + echo A >afile && hg add afile && hg ci -m "origin" && - echo B > afile && + echo B >afile && hg ci -m "A->B" && hg up -r0 && - echo C > afile && + echo C >afile && hg ci -m "A->C" && hg merge -r1 || true && - echo B > afile && + echo B >afile && hg resolve -m afile && hg ci -m "merge to B" ) && - for x in hg git; do + for x in hg git + do git_clone_$x hgrepo1 gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > hg-log-$x && - git_log gitrepo-$x > git-log-$x + hg_log hgrepo2-$x >hg-log-$x && + git_log gitrepo-$x >git-log-$x done && test_cmp hg-log-hg hg-log-git && @@ -254,29 +261,30 @@ test_expect_success 'converged merge' ' ( hg init hgrepo1 && cd hgrepo1 && - echo A > afile && + echo A >afile && hg add afile && hg ci -m "origin" && - echo B > afile && + echo B >afile && hg ci -m "A->B" && - echo C > afile && + echo C >afile && hg ci -m "B->C" && hg up -r0 && - echo C > afile && + echo C >afile && hg ci -m "A->C" && hg merge -r2 || true && hg ci -m "merge" ) && - for x in hg git; do + for x in hg git + do git_clone_$x hgrepo1 gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > hg-log-$x && - git_log gitrepo-$x > git-log-$x + hg_log hgrepo2-$x >hg-log-$x && + git_log gitrepo-$x >git-log-$x done && test_cmp hg-log-hg hg-log-git && @@ -290,32 +298,33 @@ test_expect_success 'encoding' ' git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add älphà" && GIT_AUTHOR_NAME="tést èncödîng" && export GIT_AUTHOR_NAME && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" && - echo gamma > gamma && + echo gamma >gamma && git add gamma && git commit -m "add gämmâ" && : TODO git config i18n.commitencoding latin-1 && - echo delta > delta && + echo delta >delta && git add delta && git commit -m "add déltà" ) && - for x in hg git; do + for x in hg git + do hg_clone_$x gitrepo hgrepo-$x && git_clone_$x hgrepo-$x gitrepo2-$x && - HGENCODING=utf-8 hg_log hgrepo-$x > hg-log-$x && - git_log gitrepo2-$x > git-log-$x + HGENCODING=utf-8 hg_log hgrepo-$x >hg-log-$x && + git_log gitrepo2-$x >git-log-$x done && test_cmp hg-log-hg hg-log-git && @@ -328,14 +337,14 @@ test_expect_success 'file removal' ' ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" mkdir foo && - echo blah > foo/bar && + echo blah >foo/bar && git add foo && git commit -m "add foo" && git rm alpha && @@ -344,17 +353,18 @@ test_expect_success 'file removal' ' git commit -m "remove foo/bar" ) && - for x in hg git; do + for x in hg git + do ( hg_clone_$x gitrepo hgrepo-$x && cd hgrepo-$x && hg_log . && hg manifest -r 3 && hg manifest - ) > output-$x && + ) >output-$x && git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x > log-$x + git_log gitrepo2-$x >log-$x done && test_cmp output-hg output-git && @@ -368,20 +378,21 @@ test_expect_success 'git tags' ' git init -q gitrepo && cd gitrepo && git config receive.denyCurrentBranch ignore && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git tag alpha && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" && git tag -a -m "added tag beta" beta ) && - for x in hg git; do + for x in hg git + do hg_clone_$x gitrepo hgrepo-$x && - hg_log hgrepo-$x > log-$x + hg_log hgrepo-$x >log-$x done && test_cmp log-hg log-git @@ -390,12 +401,13 @@ test_expect_success 'git tags' ' test_expect_success 'hg author' ' test_when_finished "rm -rf gitrepo* hgrepo*" && - for x in hg git; do + for x in hg git + do ( git init -q gitrepo-$x && cd gitrepo-$x && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git checkout -q -b not-master @@ -406,38 +418,38 @@ test_expect_success 'hg author' ' cd hgrepo-$x && hg co master && - echo beta > beta && + echo beta >beta && hg add beta && hg commit -u "test" -m "add beta" && - echo gamma >> beta && + echo gamma >>beta && hg commit -u "test (comment)" -m "modify beta" && - echo gamma > gamma && + echo gamma >gamma && hg add gamma && hg commit -u "" -m "add gamma" && - echo delta > delta && + echo delta >delta && hg add delta && hg commit -u "name" -m "add delta" && - echo epsilon > epsilon && + echo epsilon >epsilon && hg add epsilon && hg commit -u "name zeta && + echo zeta >zeta && hg add zeta && hg commit -u " test " -m "add zeta" && - echo eta > eta && + echo eta >eta && hg add eta && hg commit -u "test < test@example.com >" -m "add eta" && - echo theta > theta && + echo theta >theta && hg add theta && hg commit -u "test >test@example.com>" -m "add theta" && - echo iota > iota && + echo iota >iota && hg add iota && hg commit -u "test example com>" -m "add iota" ) && @@ -445,8 +457,8 @@ test_expect_success 'hg author' ' hg_push_$x hgrepo-$x gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > hg-log-$x && - git_log gitrepo-$x > git-log-$x + hg_log hgrepo2-$x >hg-log-$x && + git_log gitrepo-$x >git-log-$x done && test_cmp hg-log-hg hg-log-git && @@ -456,12 +468,13 @@ test_expect_success 'hg author' ' test_expect_success 'hg branch' ' test_when_finished "rm -rf gitrepo* hgrepo*" && - for x in hg git; do + for x in hg git + do ( git init -q gitrepo-$x && cd gitrepo-$x && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -q -m "add alpha" && git checkout -q -b not-master @@ -481,8 +494,8 @@ test_expect_success 'hg branch' ' hg_push_$x hgrepo-$x gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > hg-log-$x && - git_log gitrepo-$x > git-log-$x + hg_log hgrepo2-$x >hg-log-$x && + git_log gitrepo-$x >git-log-$x done && test_cmp hg-log-hg hg-log-git && @@ -492,12 +505,13 @@ test_expect_success 'hg branch' ' test_expect_success 'hg tags' ' test_when_finished "rm -rf gitrepo* hgrepo*" && - for x in hg git; do + for x in hg git + do ( git init -q gitrepo-$x && cd gitrepo-$x && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git checkout -q -b not-master @@ -518,7 +532,7 @@ test_expect_success 'hg tags' ' git --git-dir=gitrepo-$x/.git tag -l && hg_log hgrepo2-$x && cat hgrepo2-$x/.hgtags - ) > output-$x + ) >output-$x done && test_cmp output-hg output-git diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index 5a6f7451ba..72f745d63f 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -10,40 +10,44 @@ test_description='Test remote-hg' . ./test-lib.sh -if ! test_have_prereq PYTHON; then +if ! test_have_prereq PYTHON +then skip_all='skipping remote-hg tests; python not available' test_done fi -if ! python -c 'import mercurial'; then +if ! python -c 'import mercurial' +then skip_all='skipping remote-hg tests; mercurial not available' test_done fi check () { - echo $3 > expected && - git --git-dir=$1/.git log --format='%s' -1 $2 > actual + echo $3 >expected && + git --git-dir=$1/.git log --format='%s' -1 $2 >actual test_cmp expected actual } check_branch () { - if [ -n "$3" ]; then - echo $3 > expected && - hg -R $1 log -r $2 --template '{desc}\n' > actual && + if test -n "$3" + then + echo $3 >expected && + hg -R $1 log -r $2 --template '{desc}\n' >actual && test_cmp expected actual else - hg -R $1 branches > out && + hg -R $1 branches >out && ! grep $2 out fi } check_bookmark () { - if [ -n "$3" ]; then - echo $3 > expected && - hg -R $1 log -r "bookmark('$2')" --template '{desc}\n' > actual && + if test -n "$3" + then + echo $3 >expected && + hg -R $1 log -r "bookmark('$2')" --template '{desc}\n' >actual && test_cmp expected actual else - hg -R $1 bookmarks > out && + hg -R $1 bookmarks >out && ! grep $2 out fi } @@ -52,7 +56,7 @@ check_push () { local expected_ret=$1 ret=0 ref_ret=0 IFS=':' shift - git push origin "$@" 2> error + git push origin "$@" 2>error ret=$? cat error @@ -92,7 +96,7 @@ setup () { echo "username = H G Wells " echo "[extensions]" echo "mq =" - ) >> "$HOME"/.hgrc && + ) >>"$HOME"/.hgrc && GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" && GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" && @@ -107,7 +111,7 @@ test_expect_success 'cloning' ' ( hg init hgrepo && cd hgrepo && - echo zero > content && + echo zero >content && hg add content && hg commit -m zero ) && @@ -122,7 +126,7 @@ test_expect_success 'cloning with branches' ' ( cd hgrepo && hg branch next && - echo next > content && + echo next >content && hg commit -m next ) && @@ -137,7 +141,7 @@ test_expect_success 'cloning with bookmarks' ' cd hgrepo && hg checkout default && hg bookmark feature-a && - echo feature-a > content && + echo feature-a >content && hg commit -m feature-a ) && @@ -157,7 +161,7 @@ test_expect_success 'update bookmark' ' git clone "hg::hgrepo" gitrepo && cd gitrepo && git checkout --quiet devel && - echo devel > content && + echo devel >content && git commit -a -m devel && git push --quiet ) && @@ -172,7 +176,7 @@ test_expect_success 'new bookmark' ' git clone "hg::hgrepo" gitrepo && cd gitrepo && git checkout --quiet -b feature-b && - echo feature-b > content && + echo feature-b >content && git commit -a -m feature-b && git push --quiet origin feature-b ) && @@ -184,9 +188,9 @@ test_expect_success 'new bookmark' ' rm -rf hgrepo author_test () { - echo $1 >> content && + echo $1 >>content && hg commit -u "$2" -m "add $1" && - echo "$3" >> ../expected + echo "$3" >>../expected } test_expect_success 'authors' ' @@ -199,7 +203,7 @@ test_expect_success 'authors' ' touch content && hg add content && - > ../expected && + >../expected && author_test alpha "" "H G Wells " && author_test beta "test" "test " && author_test beta "test (comment)" "test " && @@ -214,7 +218,7 @@ test_expect_success 'authors' ' ) && git clone "hg::hgrepo" gitrepo && - git --git-dir=gitrepo/.git log --reverse --format="%an <%ae>" > actual && + git --git-dir=gitrepo/.git log --reverse --format="%an <%ae>" >actual && test_cmp expected actual ' @@ -226,11 +230,11 @@ test_expect_success 'strip' ' hg init hgrepo && cd hgrepo && - echo one >> content && + echo one >>content && hg add content && hg commit -m one && - echo two >> content && + echo two >>content && hg commit -m two ) && @@ -240,20 +244,20 @@ test_expect_success 'strip' ' cd hgrepo && hg strip 1 && - echo three >> content && + echo three >>content && hg commit -m three && - echo four >> content && + echo four >>content && hg commit -m four ) && ( cd gitrepo && git fetch && - git log --format="%s" origin/master > ../actual + git log --format="%s" origin/master >../actual ) && - hg -R hgrepo log --template "{desc}\n" > expected && + hg -R hgrepo log --template "{desc}\n" >expected && test_cmp actual expected ' @@ -263,18 +267,18 @@ test_expect_success 'remote push with master bookmark' ' ( hg init hgrepo && cd hgrepo && - echo zero > content && + echo zero >content && hg add content && hg commit -m zero && hg bookmark master && - echo one > content && + echo one >content && hg commit -m one ) && ( git clone "hg::hgrepo" gitrepo && cd gitrepo && - echo two > content && + echo two >content && git commit -a -m two && git push ) && @@ -282,7 +286,7 @@ test_expect_success 'remote push with master bookmark' ' check_branch hgrepo default two ' -cat > expected <expected <<\EOF changeset: 0:6e2126489d3d tag: tip user: A U Thor @@ -300,13 +304,13 @@ test_expect_success 'remote push from master branch' ' git init gitrepo && cd gitrepo && git remote add origin "hg::../hgrepo" && - echo one > content && + echo one >content && git add content && git commit -a -m one && git push origin master ) && - hg -R hgrepo log > actual && + hg -R hgrepo log >actual && cat actual && test_cmp expected actual && @@ -322,7 +326,7 @@ test_expect_success 'remote cloning' ' ( hg init hgrepo && cd hgrepo && - echo zero > content && + echo zero >content && hg add content && hg commit -m zero ) && @@ -343,7 +347,7 @@ test_expect_success 'remote update bookmark' ' git clone "hg::hgrepo" gitrepo && cd gitrepo && git checkout --quiet devel && - echo devel > content && + echo devel >content && git commit -a -m devel && git push --quiet ) && @@ -358,7 +362,7 @@ test_expect_success 'remote new bookmark' ' git clone "hg::hgrepo" gitrepo && cd gitrepo && git checkout --quiet -b feature-b && - echo feature-b > content && + echo feature-b >content && git commit -a -m feature-b && git push --quiet origin feature-b ) && @@ -374,15 +378,15 @@ test_expect_success 'remote push diverged' ' ( cd hgrepo && hg checkout default && - echo bump > content && + echo bump >content && hg commit -m bump ) && ( cd gitrepo && - echo diverge > content && + echo diverge >content && git commit -a -m diverged && - check_push 1 <<-EOF + check_push 1 <<-\EOF master:non-fast-forward EOF ) && @@ -403,16 +407,16 @@ test_expect_success 'remote update bookmark diverge' ' ( cd hgrepo && - echo "bump bookmark" > content && + echo "bump bookmark" >content && hg commit -m "bump bookmark" ) && ( cd gitrepo && git checkout --quiet diverge && - echo diverge > content && + echo diverge >content && git commit -a -m diverge && - check_push 1 <<-EOF + check_push 1 <<-\EOF diverge:fetch-first EOF ) && @@ -427,7 +431,7 @@ test_expect_success 'remote new bookmark multiple branch head' ' git clone "hg::hgrepo" gitrepo && cd gitrepo && git checkout --quiet -b feature-c HEAD^ && - echo feature-c > content && + echo feature-c >content && git commit -a -m feature-c && git push --quiet origin feature-c ) && @@ -442,20 +446,20 @@ setup_big_push () { ( hg init hgrepo && cd hgrepo && - echo zero > content && + echo zero >content && hg add content && hg commit -m zero && hg bookmark bad_bmark1 && - echo one > content && + echo one >content && hg commit -m one && hg bookmark bad_bmark2 && hg bookmark good_bmark && hg bookmark -i good_bmark && hg -q branch good_branch && - echo "good branch" > content && + echo "good branch" >content && hg commit -m "good branch" && hg -q branch bad_branch && - echo "bad branch" > content && + echo "bad branch" >content && hg commit -m "bad branch" ) && @@ -463,40 +467,40 @@ setup_big_push () { ( cd gitrepo && - echo two > content && + echo two >content && git commit -q -a -m two && git checkout -q good_bmark && - echo three > content && + echo three >content && git commit -q -a -m three && git checkout -q bad_bmark1 && git reset --hard HEAD^ && - echo four > content && + echo four >content && git commit -q -a -m four && git checkout -q bad_bmark2 && git reset --hard HEAD^ && - echo five > content && + echo five >content && git commit -q -a -m five && git checkout -q -b new_bmark master && - echo six > content && + echo six >content && git commit -q -a -m six && git checkout -q branches/good_branch && - echo seven > content && + echo seven >content && git commit -q -a -m seven && - echo eight > content && + echo eight >content && git commit -q -a -m eight && git checkout -q branches/bad_branch && git reset --hard HEAD^ && - echo nine > content && + echo nine >content && git commit -q -a -m nine && git checkout -q -b branches/new_branch master && - echo ten > content && + echo ten >content && git commit -q -a -m ten ) } @@ -509,7 +513,7 @@ test_expect_success 'remote big push' ' ( cd gitrepo && - check_push 1 --all <<-EOF + check_push 1 --all <<-\EOF master good_bmark branches/good_branch @@ -537,17 +541,17 @@ test_expect_success 'remote big push fetch first' ' ( hg init hgrepo && cd hgrepo && - echo zero > content && + echo zero >content && hg add content && hg commit -m zero && hg bookmark bad_bmark && hg bookmark good_bmark && hg bookmark -i good_bmark && hg -q branch good_branch && - echo "good branch" > content && + echo "good branch" >content && hg commit -m "good branch" && hg -q branch bad_branch && - echo "bad branch" > content && + echo "bad branch" >content && hg commit -m "bad branch" ) && @@ -556,28 +560,28 @@ test_expect_success 'remote big push fetch first' ' ( cd hgrepo && hg bookmark -f bad_bmark && - echo update_bmark > content && + echo update_bmark >content && hg commit -m "update bmark" ) && ( cd gitrepo && - echo two > content && + echo two >content && git commit -q -a -m two && git checkout -q good_bmark && - echo three > content && + echo three >content && git commit -q -a -m three && git checkout -q bad_bmark && - echo four > content && + echo four >content && git commit -q -a -m four && git checkout -q branches/bad_branch && - echo five > content && + echo five >content && git commit -q -a -m five && - check_push 1 --all <<-EOF && + check_push 1 --all <<-\EOF && master good_bmark bad_bmark:fetch-first @@ -586,7 +590,7 @@ test_expect_success 'remote big push fetch first' ' git fetch && - check_push 1 --all <<-EOF + check_push 1 --all <<-\EOF master good_bmark bad_bmark:non-fast-forward @@ -603,7 +607,7 @@ test_expect_failure 'remote big push force' ' ( cd gitrepo && - check_push 0 --force --all <<-EOF + check_push 0 --force --all <<-\EOF master good_bmark branches/good_branch @@ -633,7 +637,7 @@ test_expect_failure 'remote big push dry-run' ' ( cd gitrepo && - check_push 1 --dry-run --all <<-EOF && + check_push 1 --dry-run --all <<-\EOF && master good_bmark branches/good_branch @@ -644,7 +648,7 @@ test_expect_failure 'remote big push dry-run' ' branches/bad_branch:non-fast-forward EOF - check_push 0 --dry-run master good_bmark new_bmark branches/good_branch branches/new_branch <<-EOF + check_push 0 --dry-run master good_bmark new_bmark branches/good_branch branches/new_branch <<-\EOF master good_bmark branches/good_branch @@ -669,10 +673,10 @@ test_expect_success 'remote double failed push' ' ( hg init hgrepo && cd hgrepo && - echo zero > content && + echo zero >content && hg add content && hg commit -m zero && - echo one > content && + echo one >content && hg commit -m one ) && @@ -680,7 +684,7 @@ test_expect_success 'remote double failed push' ' git clone "hg::hgrepo" gitrepo && cd gitrepo && git reset --hard HEAD^ && - echo two > content && + echo two >content && git commit -a -m two && test_expect_code 1 git push && test_expect_code 1 git push -- cgit v1.2.1 From 5d21adcbfe5540b89831fef2a2581d54dee4d478 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 29 Aug 2013 14:20:18 -0700 Subject: contrib/remote-helpers: quote variable references in redirection targets Even though it is not required by POSIX to double-quote the redirection target in a variable, our code does so because some versions of bash issue a warning without the quotes. Reviewed-by: Michael Haggerty Signed-off-by: Junio C Hamano --- contrib/remote-helpers/test-hg-hg-git.sh | 40 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh index a5123ca9ea..6dcd95d10f 100755 --- a/contrib/remote-helpers/test-hg-hg-git.sh +++ b/contrib/remote-helpers/test-hg-hg-git.sh @@ -144,10 +144,10 @@ test_expect_success 'executable bit' ' hg_log . && hg manifest -r 1 -v && hg manifest -v - ) >output-$x && + ) >"output-$x" && git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x >log-$x + git_log gitrepo2-$x >"log-$x" done && test_cmp output-hg output-git && @@ -175,10 +175,10 @@ test_expect_success 'symlink' ' cd hgrepo-$x && hg_log . && hg manifest -v - ) >output-$x && + ) >"output-$x" && git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x >log-$x + git_log gitrepo2-$x >"log-$x" done && test_cmp output-hg output-git && @@ -212,8 +212,8 @@ test_expect_success 'merge conflict 1' ' do git_clone_$x hgrepo1 gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x >hg-log-$x && - git_log gitrepo-$x >git-log-$x + hg_log hgrepo2-$x >"hg-log-$x" && + git_log gitrepo-$x >"git-log-$x" done && test_cmp hg-log-hg hg-log-git && @@ -247,8 +247,8 @@ test_expect_success 'merge conflict 2' ' do git_clone_$x hgrepo1 gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x >hg-log-$x && - git_log gitrepo-$x >git-log-$x + hg_log hgrepo2-$x >"hg-log-$x" && + git_log gitrepo-$x >"git-log-$x" done && test_cmp hg-log-hg hg-log-git && @@ -283,8 +283,8 @@ test_expect_success 'converged merge' ' do git_clone_$x hgrepo1 gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x >hg-log-$x && - git_log gitrepo-$x >git-log-$x + hg_log hgrepo2-$x >"hg-log-$x" && + git_log gitrepo-$x >"git-log-$x" done && test_cmp hg-log-hg hg-log-git && @@ -323,8 +323,8 @@ test_expect_success 'encoding' ' hg_clone_$x gitrepo hgrepo-$x && git_clone_$x hgrepo-$x gitrepo2-$x && - HGENCODING=utf-8 hg_log hgrepo-$x >hg-log-$x && - git_log gitrepo2-$x >git-log-$x + HGENCODING=utf-8 hg_log hgrepo-$x >"hg-log-$x" && + git_log gitrepo2-$x >"git-log-$x" done && test_cmp hg-log-hg hg-log-git && @@ -361,10 +361,10 @@ test_expect_success 'file removal' ' hg_log . && hg manifest -r 3 && hg manifest - ) >output-$x && + ) >"output-$x" && git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x >log-$x + git_log gitrepo2-$x >"log-$x" done && test_cmp output-hg output-git && @@ -392,7 +392,7 @@ test_expect_success 'git tags' ' for x in hg git do hg_clone_$x gitrepo hgrepo-$x && - hg_log hgrepo-$x >log-$x + hg_log hgrepo-$x >"log-$x" done && test_cmp log-hg log-git @@ -457,8 +457,8 @@ test_expect_success 'hg author' ' hg_push_$x hgrepo-$x gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x >hg-log-$x && - git_log gitrepo-$x >git-log-$x + hg_log hgrepo2-$x >"hg-log-$x" && + git_log gitrepo-$x >"git-log-$x" done && test_cmp hg-log-hg hg-log-git && @@ -494,8 +494,8 @@ test_expect_success 'hg branch' ' hg_push_$x hgrepo-$x gitrepo-$x && hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x >hg-log-$x && - git_log gitrepo-$x >git-log-$x + hg_log hgrepo2-$x >"hg-log-$x" && + git_log gitrepo-$x >"git-log-$x" done && test_cmp hg-log-hg hg-log-git && @@ -532,7 +532,7 @@ test_expect_success 'hg tags' ' git --git-dir=gitrepo-$x/.git tag -l && hg_log hgrepo2-$x && cat hgrepo2-$x/.hgtags - ) >output-$x + ) >"output-$x" done && test_cmp output-hg output-git -- cgit v1.2.1