##// END OF EJS Templates
merge with stable
merge with stable

File last commit:

r13027:7f2ecb64 default
r13028:687006f0 merge default
Show More
test-subrepo-git.t
209 lines | 4.5 KiB | text/troff | Tads3Lexer
$ "$TESTDIR/hghave" git || exit 80
make git commits repeatable
$ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
$ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
$ GIT_AUTHOR_DATE='1234567891 +0000'; export GIT_AUTHOR_DATE
$ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
$ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
$ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
root hg repo
$ hg init t
$ cd t
$ echo a > a
$ hg add a
$ hg commit -m a
$ cd ..
new external git repo
$ mkdir gitroot
$ cd gitroot
$ git init -q
$ echo g > g
$ git add g
$ git commit -q -m g
add subrepo clone
$ cd ../t
$ echo 's = [git]../gitroot' > .hgsub
$ git clone -q ../gitroot s
$ hg add .hgsub
$ hg commit -m 'new git subrepo'
committing subrepository $TESTTMP/t/s
$ hg debugsub
path s
source ../gitroot
revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
record a new commit from upstream from a different branch
$ cd ../gitroot
$ git checkout -b testing
Switched to a new branch 'testing'
$ echo gg >> g
$ git commit -q -a -m gg
$ cd ../t/s
$ git pull -q
$ git checkout -b testing origin/testing
Switched to a new branch 'testing'
Branch testing set up to track remote branch testing from origin.
$ cd ..
$ hg commit -m 'update git subrepo'
committing subrepository $TESTTMP/t/s
$ hg debugsub
path s
source ../gitroot
revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a
clone root
$ hg clone . ../tc
updating to branch default
cloning subrepo s
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../tc
$ hg debugsub
path s
source ../gitroot
revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a
update to previous substate
$ hg update 1
Switched to a new branch 'master'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat s/g
g
$ hg debugsub
path s
source ../gitroot
revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
make $GITROOT pushable, by replacing it with a clone with nothing checked out
$ cd ..
$ git clone gitroot gitrootbare --bare -q
$ rm -rf gitroot
$ mv gitrootbare gitroot
clone root, make local change
$ cd t
$ hg clone . ../ta
updating to branch default
cloning subrepo s
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../ta
$ echo ggg >> s/g
$ hg commit -m ggg
committing subrepository $TESTTMP/ta/s
$ hg debugsub
path s
source ../gitroot
revision 79695940086840c99328513acbe35f90fcd55e57
clone root separately, make different local change
$ cd ../t
$ hg clone . ../tb
updating to branch default
cloning subrepo s
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../tb/s
$ echo f > f
$ git add f
$ cd ..
$ hg commit -m f
committing subrepository $TESTTMP/tb/s
$ hg debugsub
path s
source ../gitroot
revision aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
user b push changes
$ hg push
pushing to $TESTTMP/t
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
user a pulls, merges, commits
$ cd ../ta
$ hg pull
pulling from $TESTTMP/t
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg merge
Automatic merge went well; stopped before committing as requested
pulling subrepo s
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat s/f
f
$ cat s/g
g
gg
ggg
$ hg commit -m 'merge'
committing subrepository $TESTTMP/ta/s
$ hg debugsub
path s
source ../gitroot
revision f47b465e1bce645dbf37232a00574aa1546ca8d3
$ hg push
pushing to $TESTTMP/t
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 1 files
update to a revision without the subrepo, keeping the local git repository
$ cd ../t
$ hg up 0
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ ls -a s
.
..
.git
$ hg up 2
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ ls -a s
.
..
.git
g
archive subrepos
$ cd ../t
$ hg archive --subrepos -r tip ../archive
pulling subrepo s
$ cd ../archive
$ cat s/f
f
$ cat s/g
g
gg
ggg