Details
Details
- Reviewers
- None
- Group Reviewers
hg-reviewers - Commits
- rHGf6540aba8e3e: subrepos: make last line of prompts <40 english chars (issue6158)
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
( )
hg-reviewers |
Lint Skipped |
Unit Tests Skipped |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/subrepo.py (6 lines) | |||
M | mercurial/subrepoutil.py (9 lines) | |||
M | tests/test-largefiles-update.t (6 lines) | |||
M | tests/test-mq-subrepo.t (3 lines) | |||
M | tests/test-subrepo-git.t (21 lines) | |||
M | tests/test-subrepo-svn.t (21 lines) | |||
M | tests/test-subrepo.t (50 lines) |
Commit | Parents | Author | Summary | Date |
---|---|---|---|---|
8bd21e668d08 | 93278baa5692 | Kyle Lippincott | Jun 24 2019, 7:01 PM |
raise SubrepoAbort(errormsg, hint=ex.hint, subrepo=subrepo, | raise SubrepoAbort(errormsg, hint=ex.hint, subrepo=subrepo, | ||||
cause=sys.exc_info()) | cause=sys.exc_info()) | ||||
return res | return res | ||||
return decoratedmethod | return decoratedmethod | ||||
def _updateprompt(ui, sub, dirty, local, remote): | def _updateprompt(ui, sub, dirty, local, remote): | ||||
if dirty: | if dirty: | ||||
msg = (_(' subrepository sources for %s differ\n' | msg = (_(' subrepository sources for %s differ\n' | ||||
'use (l)ocal source (%s) or (r)emote source (%s)?' | 'you can use (l)ocal source (%s) or (r)emote source (%s).\n' | ||||
'what do you want to do?' | |||||
'$$ &Local $$ &Remote') | '$$ &Local $$ &Remote') | ||||
% (subrelpath(sub), local, remote)) | % (subrelpath(sub), local, remote)) | ||||
else: | else: | ||||
msg = (_(' subrepository sources for %s differ (in checked out ' | msg = (_(' subrepository sources for %s differ (in checked out ' | ||||
'version)\n' | 'version)\n' | ||||
'use (l)ocal source (%s) or (r)emote source (%s)?' | 'you can use (l)ocal source (%s) or (r)emote source (%s).\n' | ||||
'what do you want to do?' | |||||
'$$ &Local $$ &Remote') | '$$ &Local $$ &Remote') | ||||
% (subrelpath(sub), local, remote)) | % (subrelpath(sub), local, remote)) | ||||
return ui.promptchoice(msg, 0) | return ui.promptchoice(msg, 0) | ||||
def _sanitize(ui, vfs, ignore): | def _sanitize(ui, vfs, ignore): | ||||
for dirname, dirs, names in vfs.walk(): | for dirname, dirs, names in vfs.walk(): | ||||
for i, d in enumerate(dirs): | for i, d in enumerate(dirs): | ||||
if d.lower() == ignore: | if d.lower() == ignore: |
debug(s, "other changed, get", r) | debug(s, "other changed, get", r) | ||||
wctx.sub(s).get(r, overwrite) | wctx.sub(s).get(r, overwrite) | ||||
sm[s] = r | sm[s] = r | ||||
elif ld[0] != r[0]: # sources differ | elif ld[0] != r[0]: # sources differ | ||||
prompts['lo'] = l[0] | prompts['lo'] = l[0] | ||||
prompts['ro'] = r[0] | prompts['ro'] = r[0] | ||||
if repo.ui.promptchoice( | if repo.ui.promptchoice( | ||||
_(' subrepository sources for %(s)s differ\n' | _(' subrepository sources for %(s)s differ\n' | ||||
'use (l)ocal%(l)s source (%(lo)s)' | 'you can use (l)ocal%(l)s source (%(lo)s)' | ||||
' or (r)emote%(o)s source (%(ro)s)?' | ' or (r)emote%(o)s source (%(ro)s).\n' | ||||
'what do you want to do?' | |||||
'$$ &Local $$ &Remote') % prompts, 0): | '$$ &Local $$ &Remote') % prompts, 0): | ||||
debug(s, "prompt changed, get", r) | debug(s, "prompt changed, get", r) | ||||
wctx.sub(s).get(r, overwrite) | wctx.sub(s).get(r, overwrite) | ||||
sm[s] = r | sm[s] = r | ||||
elif ld[1] == a[1]: # local side is unchanged | elif ld[1] == a[1]: # local side is unchanged | ||||
debug(s, "other side changed, get", r) | debug(s, "other side changed, get", r) | ||||
wctx.sub(s).get(r, overwrite) | wctx.sub(s).get(r, overwrite) | ||||
sm[s] = r | sm[s] = r | ||||
else: | else: | ||||
debug(s, "both sides changed") | debug(s, "both sides changed") | ||||
srepo = wctx.sub(s) | srepo = wctx.sub(s) | ||||
prompts['sl'] = srepo.shortid(l[1]) | prompts['sl'] = srepo.shortid(l[1]) | ||||
prompts['sr'] = srepo.shortid(r[1]) | prompts['sr'] = srepo.shortid(r[1]) | ||||
option = repo.ui.promptchoice( | option = repo.ui.promptchoice( | ||||
_(' subrepository %(s)s diverged (local revision: %(sl)s, ' | _(' subrepository %(s)s diverged (local revision: %(sl)s, ' | ||||
'remote revision: %(sr)s)\n' | 'remote revision: %(sr)s)\n' | ||||
'(M)erge, keep (l)ocal%(l)s or keep (r)emote%(o)s?' | 'you can (m)erge, keep (l)ocal%(l)s or keep ' | ||||
'(r)emote%(o)s.\n' | |||||
'what do you want to do?' | |||||
'$$ &Merge $$ &Local $$ &Remote') | '$$ &Merge $$ &Local $$ &Remote') | ||||
% prompts, 0) | % prompts, 0) | ||||
if option == 0: | if option == 0: | ||||
wctx.sub(s).merge(r) | wctx.sub(s).merge(r) | ||||
sm[s] = l | sm[s] = l | ||||
debug(s, "merge with", r) | debug(s, "merge with", r) | ||||
elif option == 1: | elif option == 1: | ||||
sm[s] = l | sm[s] = l |
$ echo 'large2 for linear merge (conflict with normal file)' > sub/large2 | $ echo 'large2 for linear merge (conflict with normal file)' > sub/large2 | ||||
$ hg update --config ui.interactive=True --config debug.dirstate.delaywrite=2 <<EOF | $ hg update --config ui.interactive=True --config debug.dirstate.delaywrite=2 <<EOF | ||||
> m | > m | ||||
> r | > r | ||||
> l | > l | ||||
> l | > l | ||||
> EOF | > EOF | ||||
subrepository sub diverged (local revision: f74e50bd9e55, remote revision: d65e59e952a9) | subrepository sub diverged (local revision: f74e50bd9e55, remote revision: d65e59e952a9) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for sub differ (in checked out version) | subrepository sources for sub differ (in checked out version) | ||||
use (l)ocal source (f74e50bd9e55) or (r)emote source (d65e59e952a9)? r | you can use (l)ocal source (f74e50bd9e55) or (r)emote source (d65e59e952a9). | ||||
what do you want to do? r | |||||
remote turned local largefile large2 into a normal file | remote turned local largefile large2 into a normal file | ||||
keep (l)argefile or use (n)ormal file? l | keep (l)argefile or use (n)ormal file? l | ||||
largefile large1 has a merge conflict | largefile large1 has a merge conflict | ||||
ancestor was 4669e532d5b2c093a78eca010077e708a071bb64 | ancestor was 4669e532d5b2c093a78eca010077e708a071bb64 | ||||
you can keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b. | you can keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b. | ||||
what do you want to do? l | what do you want to do? l | ||||
2 files updated, 1 files merged, 0 files removed, 0 files unresolved | 2 files updated, 1 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 |
abort: local changed subrepos found, qrefresh first | abort: local changed subrepos found, qrefresh first | ||||
[255] | [255] | ||||
$ hg revert sub | $ hg revert sub | ||||
reverting subrepo sub | reverting subrepo sub | ||||
adding sub/a | adding sub/a | ||||
$ hg qpush | $ hg qpush | ||||
applying 1 | applying 1 | ||||
subrepository sub diverged (local revision: b2fdb12cd82b, remote revision: aa037b301eba) | subrepository sub diverged (local revision: b2fdb12cd82b, remote revision: aa037b301eba) | ||||
(M)erge, keep (l)ocal or keep (r)emote? m | you can (m)erge, keep (l)ocal or keep (r)emote. | ||||
what do you want to do? m | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
now at: 1 | now at: 1 | ||||
$ hg status -AS | $ hg status -AS | ||||
C .hgsub | C .hgsub | ||||
C .hgsubstate | C .hgsubstate | ||||
C sub/a | C sub/a | ||||
$ hg -R sub id --id | $ hg -R sub id --id | ||||
aa037b301eba | aa037b301eba |
adding changesets | adding changesets | ||||
adding manifests | adding manifests | ||||
adding file changes | adding file changes | ||||
added 1 changesets with 1 changes to 1 files (+1 heads) | added 1 changesets with 1 changes to 1 files (+1 heads) | ||||
new changesets 089416c11d73 | new changesets 089416c11d73 | ||||
(run 'hg heads' to see heads, 'hg merge' to merge) | (run 'hg heads' to see heads, 'hg merge' to merge) | ||||
$ hg merge 2>/dev/null | $ hg merge 2>/dev/null | ||||
subrepository s diverged (local revision: 7969594, remote revision: aa84837) | subrepository s diverged (local revision: 7969594, remote revision: aa84837) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. | ||||
what do you want to do? m | |||||
pulling subrepo s from $TESTTMP/gitroot | pulling subrepo s from $TESTTMP/gitroot | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | (branch merge, don't forget to commit) | ||||
$ hg st --subrepos s | $ hg st --subrepos s | ||||
A s/f | A s/f | ||||
$ cat s/f | $ cat s/f | ||||
f | f | ||||
$ cat s/g | $ cat s/g | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ cd s | $ cd s | ||||
$ git rev-parse HEAD | $ git rev-parse HEAD | ||||
da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7 | da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7 | ||||
$ cd .. | $ cd .. | ||||
$ hg update 4 | $ hg update 4 | ||||
subrepository s diverged (local revision: da5f5b1, remote revision: aa84837) | subrepository s diverged (local revision: da5f5b1, remote revision: aa84837) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ | subrepository sources for s differ | ||||
use (l)ocal source (da5f5b1) or (r)emote source (aa84837)? l | you can use (l)ocal source (da5f5b1) or (r)emote source (aa84837). | ||||
what do you want to do? l | |||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
4+ | 4+ | ||||
$ cd s | $ cd s | ||||
$ git rev-parse HEAD | $ git rev-parse HEAD | ||||
da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7 | da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7 | ||||
$ cd .. | $ cd .. | ||||
$ hg update --clean tip > /dev/null 2>&1 | $ hg update --clean tip > /dev/null 2>&1 | ||||
Sticky subrepository, revision updates | Sticky subrepository, revision updates | ||||
$ hg id -n | $ hg id -n | ||||
7 | 7 | ||||
$ cd s | $ cd s | ||||
$ git rev-parse HEAD | $ git rev-parse HEAD | ||||
32a343883b74769118bb1d3b4b1fbf9156f4dddc | 32a343883b74769118bb1d3b4b1fbf9156f4dddc | ||||
$ cd .. | $ cd .. | ||||
$ cd s | $ cd s | ||||
$ git checkout aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | $ git checkout aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | ||||
Previous HEAD position was 32a3438* fff (glob) | Previous HEAD position was 32a3438* fff (glob) | ||||
HEAD is now at aa84837* f (glob) | HEAD is now at aa84837* f (glob) | ||||
$ cd .. | $ cd .. | ||||
$ hg update 1 | $ hg update 1 | ||||
subrepository s diverged (local revision: 32a3438, remote revision: da5f5b1) | subrepository s diverged (local revision: 32a3438, remote revision: da5f5b1) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ (in checked out version) | subrepository sources for s differ (in checked out version) | ||||
use (l)ocal source (32a3438) or (r)emote source (da5f5b1)? l | you can use (l)ocal source (32a3438) or (r)emote source (da5f5b1). | ||||
what do you want to do? l | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ cd s | $ cd s | ||||
$ git rev-parse HEAD | $ git rev-parse HEAD | ||||
aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | ||||
$ cd .. | $ cd .. | ||||
Sticky subrepository, file changes and revision updates | Sticky subrepository, file changes and revision updates | ||||
$ touch s/f1 | $ touch s/f1 | ||||
$ cd s | $ cd s | ||||
$ git add f1 | $ git add f1 | ||||
$ git rev-parse HEAD | $ git rev-parse HEAD | ||||
aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | ||||
$ cd .. | $ cd .. | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ hg update 7 | $ hg update 7 | ||||
subrepository s diverged (local revision: 32a3438, remote revision: 32a3438) | subrepository s diverged (local revision: 32a3438, remote revision: 32a3438) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ | subrepository sources for s differ | ||||
use (l)ocal source (32a3438) or (r)emote source (32a3438)? l | you can use (l)ocal source (32a3438) or (r)emote source (32a3438). | ||||
what do you want to do? l | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
7+ | 7+ | ||||
$ cd s | $ cd s | ||||
$ git rev-parse HEAD | $ git rev-parse HEAD | ||||
aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | aa84837ccfbdfedcdcdeeedc309d73e6eb069edc | ||||
$ cd .. | $ cd .. | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ cd s | $ cd s | ||||
$ svnversion | $ svnversion | ||||
2M | 2M | ||||
$ cd .. | $ cd .. | ||||
$ hg update tip | $ hg update tip | ||||
subrepository s diverged (local revision: 2, remote revision: 3) | subrepository s diverged (local revision: 2, remote revision: 3) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ | subrepository sources for s differ | ||||
use (l)ocal source (2) or (r)emote source (3)? l | you can use (l)ocal source (2) or (r)emote source (3). | ||||
what do you want to do? l | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
2+ | 2+ | ||||
$ cd s | $ cd s | ||||
$ svnversion | $ svnversion | ||||
2M | 2M | ||||
$ cd .. | $ cd .. | ||||
$ hg update --clean tip | $ hg update --clean tip | ||||
$ svnversion | $ svnversion | ||||
3 | 3 | ||||
$ cd .. | $ cd .. | ||||
$ cd s | $ cd s | ||||
$ svn update -qr 1 | $ svn update -qr 1 | ||||
$ cd .. | $ cd .. | ||||
$ hg update 1 | $ hg update 1 | ||||
subrepository s diverged (local revision: 3, remote revision: 2) | subrepository s diverged (local revision: 3, remote revision: 2) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ (in checked out version) | subrepository sources for s differ (in checked out version) | ||||
use (l)ocal source (1) or (r)emote source (2)? l | you can use (l)ocal source (1) or (r)emote source (2). | ||||
what do you want to do? l | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ cd s | $ cd s | ||||
$ svnversion | $ svnversion | ||||
1 | 1 | ||||
$ cd .. | $ cd .. | ||||
Sticky subrepository, file changes and revision updates | Sticky subrepository, file changes and revision updates | ||||
$ touch s/f1 | $ touch s/f1 | ||||
$ cd s | $ cd s | ||||
$ svn add f1 | $ svn add f1 | ||||
A f1 | A f1 | ||||
$ svnversion | $ svnversion | ||||
1M | 1M | ||||
$ cd .. | $ cd .. | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ hg update tip | $ hg update tip | ||||
subrepository s diverged (local revision: 3, remote revision: 3) | subrepository s diverged (local revision: 3, remote revision: 3) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ | subrepository sources for s differ | ||||
use (l)ocal source (1) or (r)emote source (3)? l | you can use (l)ocal source (1) or (r)emote source (3). | ||||
what do you want to do? l | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
2+ | 2+ | ||||
$ cd s | $ cd s | ||||
$ svnversion | $ svnversion | ||||
1M | 1M | ||||
$ cd .. | $ cd .. | ||||
$ cd .. | $ cd .. | ||||
Test subrepo already at intended revision: | Test subrepo already at intended revision: | ||||
$ cd s | $ cd s | ||||
$ svn update -qr 2 | $ svn update -qr 2 | ||||
$ cd .. | $ cd .. | ||||
$ hg update 1 | $ hg update 1 | ||||
subrepository s diverged (local revision: 3, remote revision: 2) | subrepository s diverged (local revision: 3, remote revision: 2) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
1+ | 1+ | ||||
$ cd s | $ cd s | ||||
$ svnversion | $ svnversion | ||||
2 | 2 | ||||
$ cd .. | $ cd .. | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf | ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
.hgsubstate: versions differ -> m (premerge) | .hgsubstate: versions differ -> m (premerge) | ||||
subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4 | subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4 | ||||
subrepo t: both sides changed | subrepo t: both sides changed | ||||
subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198) | subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198) | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. | ||||
what do you want to do? m | |||||
merging subrepository "t" | merging subrepository "t" | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198 | ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198 | ||||
preserving t for resolve of t | |||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
preserving t for resolve of t | |||||
t: versions differ -> m (premerge) | t: versions differ -> m (premerge) | ||||
picked tool ':merge' for t (binary False symlink False changedelete False) | picked tool ':merge' for t (binary False symlink False changedelete False) | ||||
merging t | merging t | ||||
my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a | my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a | ||||
t: versions differ -> m (merge) | t: versions differ -> m (merge) | ||||
picked tool ':merge' for t (binary False symlink False changedelete False) | picked tool ':merge' for t (binary False symlink False changedelete False) | ||||
my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a | my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a | ||||
warning: conflicts while merging t! (edit, then use 'hg resolve --mark') | warning: conflicts while merging t! (edit, then use 'hg resolve --mark') | ||||
$ echo e > e | $ echo e > e | ||||
$ hg ci -Am1 | $ hg ci -Am1 | ||||
adding e | adding e | ||||
$ hg up 5 | $ hg up 5 | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg merge 4 # try to merge default into br again | $ hg merge 4 # try to merge default into br again | ||||
subrepository s diverged (local revision: f8f13b33206e, remote revision: a3f9062a4f88) | subrepository s diverged (local revision: f8f13b33206e, remote revision: a3f9062a4f88) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. | ||||
what do you want to do? m | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | (branch merge, don't forget to commit) | ||||
$ cd .. | $ cd .. | ||||
test subrepo delete from .hgsubstate | test subrepo delete from .hgsubstate | ||||
$ hg init testdelete | $ hg init testdelete | ||||
$ mkdir testdelete/nested testdelete/nested2 | $ mkdir testdelete/nested testdelete/nested2 | ||||
pulling from $TESTTMP/issue1852a | pulling from $TESTTMP/issue1852a | ||||
searching for changes | searching for changes | ||||
adding changesets | adding changesets | ||||
adding manifests | adding manifests | ||||
adding file changes | adding file changes | ||||
added 1 changesets with 2 changes to 2 files | added 1 changesets with 2 changes to 2 files | ||||
new changesets c82b79fdcc5b | new changesets c82b79fdcc5b | ||||
subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c) | subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo | pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo | ||||
searching for changes | searching for changes | ||||
adding changesets | adding changesets | ||||
adding manifests | adding manifests | ||||
adding file changes | adding file changes | ||||
added 1 changesets with 1 changes to 1 files | added 1 changesets with 1 changes to 1 files | ||||
new changesets 46cd4aac504c | new changesets 46cd4aac504c | ||||
subrepository sources for sub/repo differ | subrepository sources for sub/repo differ | ||||
use (l)ocal source (f42d5c7504a8) or (r)emote source (46cd4aac504c)? l | you can use (l)ocal source (f42d5c7504a8) or (r)emote source (46cd4aac504c). | ||||
what do you want to do? l | |||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cat issue1852d/.hgsubstate | $ cat issue1852d/.hgsubstate | ||||
f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo | f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo | ||||
Check status of files when none of them belong to the first | Check status of files when none of them belong to the first | ||||
subrepository: | subrepository: | ||||
$ hg init subrepo-status | $ hg init subrepo-status | ||||
$ hg id | $ hg id | ||||
365661e5936a+ | 365661e5936a+ | ||||
$ hg -R s id | $ hg -R s id | ||||
fc627a69481f+ | fc627a69481f+ | ||||
$ hg -R t id | $ hg -R t id | ||||
e95bcfa18a35+ | e95bcfa18a35+ | ||||
$ hg update tip | $ hg update tip | ||||
subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9) | subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ | subrepository sources for s differ | ||||
use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)? l | you can use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9). | ||||
what do you want to do? l | |||||
subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a) | subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for t differ | subrepository sources for t differ | ||||
use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)? l | you can use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a). | ||||
what do you want to do? l | |||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id | $ hg id | ||||
925c17564ef8+ tip | 925c17564ef8+ tip | ||||
$ hg -R s id | $ hg -R s id | ||||
fc627a69481f+ | fc627a69481f+ | ||||
$ hg -R t id | $ hg -R t id | ||||
e95bcfa18a35+ | e95bcfa18a35+ | ||||
$ hg update --clean tip | $ hg update --clean tip | ||||
$ hg update -r -2 | $ hg update -r -2 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd ../t | $ cd ../t | ||||
$ hg update -r 2 | $ hg update -r 2 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd .. | $ cd .. | ||||
$ hg update 10 | $ hg update 10 | ||||
subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c) | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for t differ (in checked out version) | subrepository sources for t differ (in checked out version) | ||||
use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)? l | you can use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c). | ||||
what do you want to do? l | |||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id | $ hg id | ||||
e45c8b14af55+ | e45c8b14af55+ | ||||
$ hg -R s id | $ hg -R s id | ||||
02dcf1d70411 | 02dcf1d70411 | ||||
$ hg -R t id | $ hg -R t id | ||||
7af322bc1198 | 7af322bc1198 | ||||
Sticky subrepository, file changes and revision updates | Sticky subrepository, file changes and revision updates | ||||
$ touch s/f1 | $ touch s/f1 | ||||
$ touch t/f1 | $ touch t/f1 | ||||
$ hg add -S s/f1 | $ hg add -S s/f1 | ||||
$ hg add -S t/f1 | $ hg add -S t/f1 | ||||
$ hg id | $ hg id | ||||
e45c8b14af55+ | e45c8b14af55+ | ||||
$ hg -R s id | $ hg -R s id | ||||
02dcf1d70411+ | 02dcf1d70411+ | ||||
$ hg -R t id | $ hg -R t id | ||||
7af322bc1198+ | 7af322bc1198+ | ||||
$ hg update tip | $ hg update tip | ||||
subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9) | subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for s differ | subrepository sources for s differ | ||||
use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9)? l | you can use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9). | ||||
what do you want to do? l | |||||
subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a) | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
subrepository sources for t differ | subrepository sources for t differ | ||||
use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)? l | you can use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a). | ||||
what do you want to do? l | |||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id | $ hg id | ||||
925c17564ef8+ tip | 925c17564ef8+ tip | ||||
$ hg -R s id | $ hg -R s id | ||||
02dcf1d70411+ | 02dcf1d70411+ | ||||
$ hg -R t id | $ hg -R t id | ||||
7af322bc1198+ | 7af322bc1198+ | ||||
Test subrepo already at intended revision: | Test subrepo already at intended revision: | ||||
$ cd s | $ cd s | ||||
$ hg update fc627a69481f | $ hg update fc627a69481f | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd .. | $ cd .. | ||||
$ hg update 11 | $ hg update 11 | ||||
subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) | ||||
(M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | ||||
what do you want to do? m | |||||
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, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg id -n | $ hg id -n | ||||
11+ | 11+ | ||||
$ hg -R s id | $ hg -R s id | ||||
fc627a69481f | fc627a69481f | ||||
$ hg -R t id | $ hg -R t id | ||||
e95bcfa18a35 | e95bcfa18a35 |