##// END OF EJS Templates
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)...
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API) Color extension achieves colorization by overriding the class of "ui" object just before command execution. Before this patch, "diff()" of abstractsubrepo and classes derived from it has no "ui" argument, so "diff()" of hgsubrepo uses "self._repo.ui" to invoke "cmdutil.diffordiffstat()". For separation of configuration between repositories, revision 573bec4ab7ba changed the initialization source of "self._repo.ui" from "ui"(overridden) to "baseui"(plain) of parent repository. And this caused break of colorization. This patch adds "ui" argument to "diff()" of abstractsubrepo and classes derived from it to pass "ui" object of caller side.

File last commit:

r17882:36ed69d4 stable
r18006:0c10cf81 2.4.1 stable
Show More
test-clone.t
623 lines | 13.3 KiB | text/troff | Tads3Lexer
Adrian Buehlmann
tests: unify test-clone
r11806 Prepare repo a:
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init a
Adrian Buehlmann
tests: unify test-clone
r11806 $ cd a
$ echo a > a
$ hg add a
$ hg commit -m test
$ echo first line > b
$ hg add b
Create a non-inlined filelog:
Mads Kiilerich
tests: don't use stdout redirection for test data...
r15522 $ python -c 'file("data1", "wb").write("".join("%s\n" % x for x in range(10000)))'
Adrian Buehlmann
tests: unify test-clone
r11806 $ for j in 0 1 2 3 4 5 6 7 8 9; do
> cat data1 >> b
> hg commit -m test
> done
List files in store/data (should show a 'b.d'):
$ for i in .hg/store/data/*; do
> echo $i
> done
.hg/store/data/a.i
.hg/store/data/b.d
.hg/store/data/b.i
Default operation:
$ hg clone . ../b
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../b
$ cat a
a
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 11 changesets, 11 total revisions
Adrian Buehlmann
test-clone.t: add basic cases for destination ''...
r13058 Invalid dest '' must abort:
$ hg clone . ''
FUJIWARA Katsunori
localrepo: use the path relative to "self.vfs" instead of "path" argument...
r17159 abort: empty destination path is not valid
Adrian Buehlmann
test-clone.t: add basic cases for destination ''...
r13058 [255]
Adrian Buehlmann
tests: unify test-clone
r11806 No update, with debug option:
Mads Kiilerich
tests: introduce hghave hardlinks...
r16971 #if hardlink
Adrian Buehlmann
tests: unify test-clone
r11806 $ hg --debug clone -U . ../c
linked 8 files
Pierre-Yves David
pushkey: add more verbose debug output regarding pushkey...
r17293 listing keys for "bookmarks"
Mads Kiilerich
tests: introduce hghave hardlinks...
r16971 #else
$ hg --debug clone -U . ../c
copied 8 files
Adrian Buehlmann
test-clone: fix for vfat...
r17307 listing keys for "bookmarks"
Mads Kiilerich
tests: introduce hghave hardlinks...
r16971 #endif
Adrian Buehlmann
tests: unify test-clone
r11806 $ cd ../c
$ cat a 2>/dev/null || echo "a not present"
a not present
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 11 changesets, 11 total revisions
Default destination:
$ mkdir ../d
$ cd ../d
$ hg clone ../a
destination directory: a
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd a
$ hg cat a
a
$ cd ../..
Check that we drop the 'file:' from the path before writing the .hgrc:
$ hg clone file:a e
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ grep 'file:' e/.hg/hgrc
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Adrian Buehlmann
tests: unify test-clone
r11806
Check that path aliases are expanded:
$ hg clone -q -U --config 'paths.foobar=a#0' foobar f
$ hg -R f showconfig paths.default
Mads Kiilerich
tests: add missing '(glob)'s to match '\' in paths in test output on windows
r15520 $TESTTMP/a#0 (glob)
Adrian Buehlmann
tests: unify test-clone
r11806
Use --pull:
$ hg clone --pull a g
requesting all changes
adding changesets
adding manifests
adding file changes
added 11 changesets with 11 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R g verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
2 files, 11 changesets, 11 total revisions
Adrian Buehlmann
test-clone.t: add basic cases for destination ''...
r13058 Invalid dest '' with --pull must abort (issue2528):
$ hg clone --pull a ''
FUJIWARA Katsunori
localrepo: use the path relative to "self.vfs" instead of "path" argument...
r17159 abort: empty destination path is not valid
Adrian Buehlmann
test-clone.t: add basic cases for destination ''...
r13058 [255]
Adrian Buehlmann
tests: unify test-clone
r11806 Clone to '.':
$ mkdir h
$ cd h
$ hg clone ../a .
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
*** Tests for option -u ***
Adding some more history to repo a:
$ cd a
$ hg tag ref1
$ echo the quick brown fox >a
$ hg ci -m "hacked default"
$ hg up ref1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg branch stable
marked working directory as branch stable
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Adrian Buehlmann
tests: unify test-clone
r11806 $ echo some text >a
$ hg ci -m "starting branch stable"
$ hg tag ref2
$ echo some more text >a
$ hg ci -m "another change for branch stable"
$ hg up ref2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg parents
changeset: 13:e8ece76546a6
branch: stable
tag: ref2
parent: 10:a7949464abda
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: starting branch stable
Repo a has two heads:
$ hg heads
changeset: 15:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
$ cd ..
Testing --noupdate with --updaterev (must abort):
$ hg clone --noupdate --updaterev 1 a ua
abort: cannot specify both --noupdate and --updaterev
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
tests: unify test-clone
r11806
Testing clone -u:
$ hg clone -u . a ua
updating to branch stable
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has both heads:
$ hg -R ua heads
changeset: 15:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
Same revision checked out in repo a and ua:
$ hg -R a parents --template "{node|short}\n"
e8ece76546a6
$ hg -R ua parents --template "{node|short}\n"
e8ece76546a6
$ rm -r ua
Testing clone --pull -u:
$ hg clone --pull -u . a ua
requesting all changes
adding changesets
adding manifests
adding file changes
added 16 changesets with 16 changes to 3 files (+1 heads)
updating to branch stable
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has both heads:
$ hg -R ua heads
changeset: 15:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
Same revision checked out in repo a and ua:
$ hg -R a parents --template "{node|short}\n"
e8ece76546a6
$ hg -R ua parents --template "{node|short}\n"
e8ece76546a6
$ rm -r ua
Testing clone -u <branch>:
$ hg clone -u stable a ua
updating to branch stable
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has both heads:
$ hg -R ua heads
changeset: 15:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
Branch 'stable' is checked out:
$ hg -R ua parents
changeset: 15:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
$ rm -r ua
Testing default checkout:
$ hg clone a ua
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has both heads:
$ hg -R ua heads
changeset: 15:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
Branch 'default' is checked out:
$ hg -R ua parents
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
Thomas Arendsen Hein
test-clone.t: check that branch "@" is not automatically checked out...
r17869 Test clone with a branch named "@" (issue3677)
Adrian Buehlmann
tests: unify test-clone
r11806
Thomas Arendsen Hein
test-clone.t: check that branch "@" is not automatically checked out...
r17869 $ hg -R ua branch @
marked working directory as branch @
(branches are permanent and global, did you want a bookmark?)
$ hg -R ua commit -m 'created branch @'
$ hg clone ua atbranch
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R atbranch heads
changeset: 16:798b6d97153e
branch: @
tag: tip
parent: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: created branch @
changeset: 15:0aae7cf88f0d
branch: stable
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
$ hg -R atbranch parents
changeset: 12:f21241060d6a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: hacked default
$ rm -r ua atbranch
Adrian Buehlmann
tests: unify test-clone
r11806
Testing #<branch>:
$ hg clone -u . a#stable ua
adding changesets
adding manifests
adding file changes
added 14 changesets with 14 changes to 3 files
updating to branch stable
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
$ hg -R ua heads
changeset: 13:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 10:a7949464abda
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: test
Same revision checked out in repo a and ua:
$ hg -R a parents --template "{node|short}\n"
e8ece76546a6
$ hg -R ua parents --template "{node|short}\n"
e8ece76546a6
$ rm -r ua
Testing -u -r <branch>:
$ hg clone -u . -r stable a ua
adding changesets
adding manifests
adding file changes
added 14 changesets with 14 changes to 3 files
updating to branch stable
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
$ hg -R ua heads
changeset: 13:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 10:a7949464abda
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: test
Same revision checked out in repo a and ua:
$ hg -R a parents --template "{node|short}\n"
e8ece76546a6
$ hg -R ua parents --template "{node|short}\n"
e8ece76546a6
$ rm -r ua
Testing -r <branch>:
$ hg clone -r stable a ua
adding changesets
adding manifests
adding file changes
added 14 changesets with 14 changes to 3 files
updating to branch stable
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
$ hg -R ua heads
changeset: 13:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
changeset: 10:a7949464abda
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: test
Branch 'stable' is checked out:
$ hg -R ua parents
changeset: 13:0aae7cf88f0d
branch: stable
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: another change for branch stable
$ rm -r ua
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue2267: Error in 1.6 hg.py: TypeError: 'NoneType' object is not
iterable in addbranchrevs()
Adrian Buehlmann
tests: unify test-clone
r11806
$ cat <<EOF > simpleclone.py
> from mercurial import ui, hg
> myui = ui.ui()
> repo = hg.repository(myui, 'a')
Peter Arrenbrecht
hg: add opts argument to clone for internal remoteui
r14553 > hg.clone(myui, {}, repo, dest="ua")
Adrian Buehlmann
tests: unify test-clone
r11806 > EOF
$ python simpleclone.py
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -r ua
Martin Geisler
test-clone: f1c2de22b8a8 lost changes from b1ae33b813cb
r11839 $ cat <<EOF > branchclone.py
Bryan O'Sullivan
test-clone: load extensions before doing anything...
r17135 > from mercurial import ui, hg, extensions
Martin Geisler
test-clone: f1c2de22b8a8 lost changes from b1ae33b813cb
r11839 > myui = ui.ui()
Bryan O'Sullivan
test-clone: load extensions before doing anything...
r17135 > extensions.loadall(myui)
Martin Geisler
test-clone: f1c2de22b8a8 lost changes from b1ae33b813cb
r11839 > repo = hg.repository(myui, 'a')
Peter Arrenbrecht
hg: add opts argument to clone for internal remoteui
r14553 > hg.clone(myui, {}, repo, dest="ua", branch=["stable",])
Martin Geisler
test-clone: f1c2de22b8a8 lost changes from b1ae33b813cb
r11839 > EOF
Martin Geisler
Merge with stable
r11823
Martin Geisler
test-clone: f1c2de22b8a8 lost changes from b1ae33b813cb
r11839 $ python branchclone.py
adding changesets
adding manifests
adding file changes
added 14 changesets with 14 changes to 3 files
updating to branch stable
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -r ua
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847
Kevin Bullock
clone: update to @ bookmark if it exists
r17756 Test clone with special '@' bookmark:
$ cd a
$ hg bookmark -r a7949464abda @ # branch point of stable from default
$ hg clone . ../i
Adrian Buehlmann
clone: show status "updating to bookmark @"...
r17882 updating to bookmark @
Kevin Bullock
clone: update to @ bookmark if it exists
r17756 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -i ../i
a7949464abda
Adrian Buehlmann
clone: show status "updating to bookmark @"...
r17882 $ rm -r ../i
$ hg bookmark -f -r stable @
$ hg bookmarks
@ 15:0aae7cf88f0d
$ hg clone . ../i
updating to bookmark @ on branch stable
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -i ../i
0aae7cf88f0d
Adrian Buehlmann
test-clone: fix directory level...
r17881 $ cd "$TESTTMP"
Kevin Bullock
clone: update to @ bookmark if it exists
r17756
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847 Testing failures:
$ mkdir fail
$ cd fail
No local source
$ hg clone a b
abort: repository a not found!
[255]
No remote source
$ hg clone http://127.0.0.1:3121/a b
abort: error: *refused* (glob)
[255]
$ rm -rf b # work around bug with http clone
#if unix-permissions
Inaccessible source
$ mkdir a
$ chmod 000 a
$ hg clone a b
abort: repository a not found!
[255]
Inaccessible destination
$ hg init b
$ cd b
$ hg clone . ../a
abort: Permission denied: ../a
[255]
$ cd ..
$ chmod 700 a
$ rm -r a b
#endif
Mads Kiilerich
tests: change odd uses of 'if hghave' to #if
r16898 #if fifo
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847 Source of wrong type
Mads Kiilerich
tests: change odd uses of 'if hghave' to #if
r16898 $ mkfifo a
$ hg clone a b
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847 abort: repository a not found!
Mads Kiilerich
tests: change odd uses of 'if hghave' to #if
r16898 [255]
$ rm a
#endif
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847
Default destination, same directory
$ hg init q
$ hg clone q
destination directory: q
abort: destination 'q' is not empty
[255]
destination directory not empty
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ mkdir a
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847 $ echo stuff > a/a
$ hg clone q a
abort: destination 'a' is not empty
[255]
#if unix-permissions
leave existing directory in place after clone failure
$ hg init c
$ cd c
$ echo c > c
$ hg commit -A -m test
adding c
$ chmod -rx .hg/store/data
$ cd ..
$ mkdir d
$ hg clone c d 2> err
[255]
$ test -d d
$ test -d d/.hg
[1]
Mads Kiilerich
fix trivial spelling errors
r17424 re-enable perm to allow deletion
Adrian Buehlmann
tests: roll test-clone-failure.t into test-clone.t
r16847
$ chmod +rx c/.hg/store/data
#endif
$ cd ..