Subrepo status/diff/revert
Tim Henigan
tim.henigan at gmail.com
Mon Aug 23 09:54:16 CDT 2010
Hello,
My team intends to use subrepos for shared modules in our products.
However, some concerns were raised about the current user interface.
Developers here are interested in a few key features:
1) `hg status` must show when a subrepo has been modified (e.g.
updated to different changeset or locally modified).
2) If a subrepo has been modified, then `hg diff` must show the
change to the SHA1 (or just append '+dirty' to the SHA1 if locally
modified).
3) If a subrepo has been mistakenly modified, then `hg revert`
must update it to the correct changeset.
4) The above changes must not break TortoiseHg.
I understand that changes to subrepo behavior are being considered [1]
[2], but I haven't seen anything yet that would address these needs.
With that in mind, I plan to develop an extension to:
1) Modify `hg status` to show when a subrepo SHA1 does not match
the SHA1 in .hgsubstate. My current plan is to output 'S subrepo/dir'
when a mismatch is found. This is the same action done in TortoiseHg
today.
2) Modify `hg revert` to update subrepos to the SHA1 listed in .hgsubstate.
3) Modify `hg diff` to show changes to the .hgsubstate SHA1. This includes:
a) Replacing the subrepo SHA1 in .hgsubstate if it does not match.
b) Appending '+dirty' to the SHA1 in .hgsubstate if the
subrepo has local modifications.
-) NOTE: I am not sure if modifying .hgsubstate is safe in this context.
Does this group of changes sound reasonable?
Are there other plans to develop similar features?
Thanks,
Tim Henigan
[1] http://mercurial.selenic.com/wiki/SubrepoRemappingPlan
[2] http://marc.info/?t=127589116200002&r=1&w=1
More information about the Mercurial-devel
mailing list