mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 15:57:43 +03:00
f49c9eec1a
Note that aborting in subrepo.state() prevents "repairing" commands like revert to be issued. The user will have to edit the .hgsubstate manually (but he probably had already otherwise this would not be failing). The same behaviour already happens with invalid .hgsub entries.
70 lines
1.7 KiB
Perl
70 lines
1.7 KiB
Perl
$ hg init repo
|
|
$ cd repo
|
|
$ hg init subrepo
|
|
$ echo a > subrepo/a
|
|
$ hg -R subrepo ci -Am adda
|
|
adding a
|
|
$ echo 'subrepo = subrepo' > .hgsub
|
|
$ hg ci -Am addsubrepo
|
|
adding .hgsub
|
|
$ echo b > subrepo/b
|
|
$ hg -R subrepo ci -Am addb
|
|
adding b
|
|
$ hg ci -m updatedsub
|
|
|
|
ignore blanklines in .hgsubstate
|
|
|
|
>>> file('.hgsubstate', 'wb').write('\n\n \t \n \n')
|
|
$ hg st --subrepos
|
|
M .hgsubstate
|
|
$ hg revert -qC .hgsubstate
|
|
|
|
abort more gracefully on .hgsubstate parsing error
|
|
|
|
$ cp .hgsubstate .hgsubstate.old
|
|
>>> file('.hgsubstate', 'wb').write('\ninvalid')
|
|
$ hg st --subrepos
|
|
abort: invalid subrepository revision specifier in .hgsubstate line 2
|
|
[255]
|
|
$ mv .hgsubstate.old .hgsubstate
|
|
|
|
delete .hgsub and revert it
|
|
|
|
$ rm .hgsub
|
|
$ hg revert .hgsub
|
|
warning: subrepo spec file .hgsub not found
|
|
warning: subrepo spec file .hgsub not found
|
|
|
|
delete .hgsubstate and revert it
|
|
|
|
$ rm .hgsubstate
|
|
$ hg revert .hgsubstate
|
|
|
|
delete .hgsub and update
|
|
|
|
$ rm .hgsub
|
|
$ hg up 0
|
|
warning: subrepo spec file .hgsub not found
|
|
warning: subrepo spec file .hgsub not found
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ hg st
|
|
warning: subrepo spec file .hgsub not found
|
|
! .hgsub
|
|
$ ls subrepo
|
|
a
|
|
|
|
delete .hgsubstate and update
|
|
|
|
$ hg up -C
|
|
warning: subrepo spec file .hgsub not found
|
|
warning: subrepo spec file .hgsub not found
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ rm .hgsubstate
|
|
$ hg up 0
|
|
remote changed .hgsubstate which local deleted
|
|
use (c)hanged version or leave (d)eleted? c
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ hg st
|
|
$ ls subrepo
|
|
a
|