strip + subrepos

Aurélien Campéas aurelien.campeas at logilab.fr
Wed Feb 29 10:14:34 UTC 2012


Hi list,

While learning subrepos I went into the following pb:

* subrepo contains some dirty state
* master repo is stripped
* subrepo is reset to its master/.hgsubstate defined state, without warning

FTR, without subrepos, the strip command bails out if local changes are 
found.

Should I open a ticket ?

Regards,
Aurélien.


PS: here comes a test

   $ echo "[extensions]" >> $HGRCPATH
   $ echo "mq=" >> $HGRCPATH

Creating a "sub" repo with two revisions

   $ hg init sub
   $ cd sub
   $ hg log
   $ touch stuff
   $ hg add stuff
   $ hg ci -m 'define stuff'
   $ echo 'stuffed' > stuff
   $ hg ci -m 'stuff it'

Creating a "master" repo with "sub" inside

   $ cd ..
   $ hg init master
   $ cd master
   $ echo 'sub = sub' > .hgsub
   $ ln -s ../sub
   $ hg add .hgsub
   $ hg ci -m 'recorded sub'
   committing subrepository

Updating "sub" to rev 0

   $ cd sub
   $ hg up 0
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cat stuff

Putting a tag on "master"

   $ cd ..
   $ hg tag fancy-tag-name

Ooops what a mistake

   $ hg strip 1
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   saved backup bundle to 
$TESTTMP/master/.hg/strip-backup/baa01ba6b66a-backup.hg

Here I expect the "sub" repo state to be still at revision 0, but ...

   $ cd sub
   $ cat stuff
   stuffed

And now for something completely different: let's introduce dirty state 
in the "sub"
and see how strip reacts

   $ echo "foo" > stuff
   $ cd ..
   $ hg tag anothertag
   $ hg strip 1
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   saved backup bundle to 
$TESTTMP/master/.hg/strip-backup/b3bf199e3693-backup.hg
   $ cd sub
   $ cat stuff
   stuffed





More information about the Mercurial mailing list