[Bug 4496] New: Provide an option to prevent rewriting sha ids in the history

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Thu Jan 8 20:51:36 UTC 2015


http://bz.selenic.com/show_bug.cgi?id=4496

          Priority: normal
            Bug ID: 4496
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: Provide an option to prevent rewriting sha ids in the
                    history
          Severity: bug
    Classification: Unclassified
                OS: Linux
          Reporter: Pidgeot18 at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: unspecified
         Component: convert
           Product: Mercurial

When I was attempting to do a conversion of an hg repository into another, I
got the following error message:
$ hg convert --splicemap convert-rev.txt /tmp/scratch/ /tmp/scratch2
scanning source...
sorting...
converting...
36725 fix problems unignoring threads, r=sspitzer,sr=mscott,a=sspitzer 6df1d7
abort: 00changelog.i at 6df1d7: ambiguous identifier!

After doing a lot more research, what ends up happening is this:

In the original repository (actually a conversion of CVS to hg), the commit
message looks like this: "fix problems unignoring threads,
r=sspitzer,sr=mscott, a=sspitzer 121164". The number at the end is a bug
number, and there are several 6-digit bug numbers in the repository in
question. However, the 6-digit bug number matches the regex as a valid sha1
identifier. There happens to be a revision whose sha starts with 121164, so it
gets rewritten using the short 6-digit identifier. I later pulled an unrelated
repository (to graft history together), which added more revisions with the
same 6df1d7 prefix, which causes the abort.

Quite frankly, I don't want the conversion process to confuse the 6-digit bug
numbers with revision IDs and rewrite them, since that destroys a lot of useful
data. I was surprised to find that there's not even a hidden option to disable
the description rewriting.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list