identical change, different changesetid

Haszlakiewicz, Eric EHASZLA at transunion.com
Thu May 5 21:57:28 UTC 2011


> -----Original Message-----
> From: Matt Mackall [mailto:mpm at selenic.com]
> On Thu, 2011-05-05 at 18:51 +0000, Haszlakiewicz, Eric wrote:
> > > -----Original Message-----
> > > From: Matt Mackall [mailto:mpm at selenic.com]
> > >  hg debugdata .hg/store/00changelog.i <rev>
> > >
> > > on both repos. These must be byte-identical to get the same
> changeset
> > > hash.
> >
> > Ah, thanks.  I found that command but I couldn't figure out how to
> use it.
> > The first line is different:
> >
> > >cd X0
> > X0>hg debugdata .hg/store/00changelog.i 5 > ../X0.txt
> > X0>cd ../X1
> > X1>hg debugdata .hg/store/00changelog.i 5 > ../X1.txt
> > X1>cd ..
> > >diff -u X0.txt X1.txt
> > --- X0.txt      2011-05-05 13:49:36.806626600 -0500
> > +++ X1.txt      2011-05-05 13:49:41.181486600 -0500
> > @@ -1,4 +1,4 @@
> > -a1f994465eb6fc082d7db05a59a38269993d0c60
> > +8566b05d1c1fe370ce38a7186a381e2f7412a180
> >  ehaszla
> >  1265224283 21600
> >  tucrs/code/scripts/etc/cibil-prod+ifxncr.cfg
> >
> > What does that mean?
> 
> That's the hash of the manifest revision, which implies that the
> manifests are not byte-identical. You can do the same comparison on the
> raw manifests with:
> 
>  hg debugdata .hg/store/00manifest.i
> a1f994465eb6fc082d7db05a59a38269993d0c60
>  hg debugdata .hg/store/00manifest.i
> 8566b05d1c1fe370ce38a7186a381e2f7412a180
> 

Yep, it's different:

>diff -ua X0.manifest.txt X1.manifest.txt
--- X0.manifest.txt     2011-05-05 16:42:57.302484400 -0500
+++ X1.manifest.txt     2011-05-05 16:43:08.739325600 -0500
@@ -476,11 +476,11 @@
 tucrs/code/scripts/etc/chennai-clustertest+ifx_sds.cfg 3fd34323103b4772dc126a23d5ebd1d2f714f31dx
 tucrs/code/scripts/etc/cibil-prod+ifx.cfg 0a5b435ca9e1549ba2a6973b1c2299606c32432cx
 tucrs/code/scripts/etc/cibil-prod+ifxdat.cfg 32d02f35a23f622897b05f5519dd971a780a6b1ex
-tucrs/code/scripts/etc/cibil-prod+ifxncr.cfg 9e44b9e257d9c355be9f65a41c9e879cff331ef8
+tucrs/code/scripts/etc/cibil-prod+ifxncr.cfg d48eeed3315fe10c0346085b926cb6772da92012
...snip...

So then I grabbed the info for those files in each repository:

X1>hg debugdata .hg/store/data/tucrs/code/scripts/etc/cibil-pr
od+ifxncr.cfg.i d48eeed3315fe10c0346085b926cb6772da92012 > ../X1.file1.txt
X1>cd ../X0
X0>hg debugdata .hg/store/data/tucrs/code/scripts/etc/cibil-pr
od+ifxncr.cfg.i 9e44b9e257d9c355be9f65a41c9e879cff331ef8 > ../X0.file1.txt
X0>cd ..

And like Benoit suggested, it looks like the metadata is in a different order:

>diff -u X0.file1.txt X1.file1.txt
--- X0.file1.txt        2011-05-05 16:48:05.378547200 -0500
+++ X1.file1.txt        2011-05-05 16:47:43.989095300 -0500
@@ -1,6 +1,6 @@

-copyrev: 894848012450b80a7405b3c0425293c8e95637d8
 copy: tucrs/code/tables/cibil-prod+ifxncr.cfg
+copyrev: 894848012450b80a7405b3c0425293c8e95637d8

 m4_include(`default.cfg_inc')m4_dnl
 LVL=prod


Horray, I finally know why it's different.  Wow, that was a bit of a trial to figure out.  Thanks!

But, is there any way to get convert to maintain the same order for the metadata?
I'd prefer to avoid needing to coordinate having everyone remove all of their clones and start with fresh ones.

eric



More information about the Mercurial mailing list