test-subrepo-git.t
266 lines
| 5.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-subrepo-git.t
Eric Eisner
|
r12992 | $ "$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 | ||||
Eric Eisner
|
r12995 | record a new commit from upstream from a different branch | ||
Eric Eisner
|
r12992 | |||
$ cd ../gitroot | ||||
Eric Eisner
|
r12995 | $ git checkout -b testing | ||
Switched to a new branch 'testing' | ||||
Eric Eisner
|
r12992 | $ echo gg >> g | ||
$ git commit -q -a -m gg | ||||
$ cd ../t/s | ||||
$ git pull -q | ||||
Eric Eisner
|
r12995 | $ git checkout -b testing origin/testing | ||
Switched to a new branch 'testing' | ||||
Branch testing set up to track remote branch testing from origin. | ||||
Eric Eisner
|
r12992 | |||
$ cd .. | ||||
$ hg commit -m 'update git subrepo' | ||||
committing subrepository $TESTTMP/t/s | ||||
$ hg debugsub | ||||
path s | ||||
source ../gitroot | ||||
revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a | ||||
Eric Eisner
|
r12993 | |||
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 | ||||
Eric Eisner
|
r12995 | Switched to a new branch 'master' | ||
Eric Eisner
|
r12993 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
$ cat s/g | ||||
g | ||||
$ hg debugsub | ||||
path s | ||||
source ../gitroot | ||||
revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7 | ||||
Eric Eisner
|
r12994 | |||
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 | ||||
Eric Eisner
|
r13029 | pushing branch testing of subrepo s | ||
Eric Eisner
|
r12994 | 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 | ||||
Eric Eisner
|
r13029 | pushing branch testing of subrepo s | ||
Eric Eisner
|
r12994 | searching for changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 2 changesets with 2 changes to 1 files | ||||
Eric Eisner
|
r12996 | |||
Eric Eisner
|
r13029 | make upstream git changes | ||
$ cd .. | ||||
$ git clone -q gitroot gitclone | ||||
$ cd gitclone | ||||
$ echo ff >> f | ||||
$ git commit -q -a -m ff | ||||
$ echo fff >> f | ||||
$ git commit -q -a -m fff | ||||
$ git push -q origin testing | ||||
make and push changes to hg without updating the subrepo | ||||
$ cd ../t | ||||
$ hg clone . ../td | ||||
updating to branch default | ||||
cloning subrepo s | ||||
checking out detached HEAD in subrepo s | ||||
check out a git branch if you intend to make changes | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd ../td | ||||
$ echo aa >> a | ||||
$ hg commit -m aa | ||||
$ 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 | ||||
Eric Eisner
|
r13087 | sync to upstream git, distribute changes | ||
$ cd ../ta | ||||
$ hg pull -u -q | ||||
$ cd s | ||||
$ git pull -q | ||||
$ cd .. | ||||
$ hg commit -m 'git upstream sync' | ||||
committing subrepository $TESTTMP/ta/s | ||||
$ hg debugsub | ||||
path s | ||||
source ../gitroot | ||||
revision 32a343883b74769118bb1d3b4b1fbf9156f4dddc | ||||
$ hg push -q | ||||
$ cd ../tb | ||||
$ hg pull -q | ||||
$ hg update | ||||
pulling subrepo s | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg debugsub | ||||
path s | ||||
source ../gitroot | ||||
revision 32a343883b74769118bb1d3b4b1fbf9156f4dddc | ||||
Eric Eisner
|
r12996 | 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 | ||||
Dan Villiom Podlaski Christiansen
|
r13010 | $ ls -a s | ||
Eric Eisner
|
r12996 | . | ||
.. | ||||
.git | ||||
$ hg up 2 | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Dan Villiom Podlaski Christiansen
|
r13010 | $ ls -a s | ||
Eric Eisner
|
r12996 | . | ||
.. | ||||
.git | ||||
g | ||||
Eric Eisner
|
r13027 | |||
archive subrepos | ||||
$ cd ../t | ||||
Eric Eisner
|
r13087 | $ hg archive --subrepos -r 5 ../archive | ||
Eric Eisner
|
r13027 | pulling subrepo s | ||
$ cd ../archive | ||||
$ cat s/f | ||||
f | ||||
$ cat s/g | ||||
g | ||||
gg | ||||
ggg | ||||