[non topological heads] (was: resolved data corruption with convert, now I can't push)

Uwe Brauer oub at mat.ucm.es
Thu Jun 1 10:56:47 UTC 2017


   > On Wed, 31 May 2017 07:00:47 -0400, Uwe Brauer <oub at mat.ucm.es> wrote:

   > Isn't the clone that was the source of rsync still around?

I checked my two laptops and the USB, unfortunately no, I don't have any
clean clone. The data corruption must have occurred some days ago.
Conclusion I never ever again will use rsync to copy a repo to a USB, I
will use push instead.

   > I think converting and ignoring errors is the Rambo solution. You
   > could use 'incoming' from BB into the converted repo to count how many
   > BB commits got mangled. If there aren't many, maybe you don't care
   > (though it would be recent). If there are many, that means the
   > corruption occurred early on, not necessarily that there's something
   > wrong with subsequent commits.


Given that I don't posses a corruption free clone (save the 2 weeks old
repo in bitbucket). I see the following solutions:

    -  I use the converted repo, I delete the bitbucket repo, re-add
       it and push from the converted. History is of course changed

    -  or I clone the bitbucket one. I delete .hg in the converted one,
       copy all files into the the bitbucket clone commit and push. I
       will loose  the history of the last two weeks.

    -  I clone the bibucket one, then I pull from the converted one and
       try to merge. I did this, but when I push I sill receive
       abort: push creates new remote head c698c52f6a03!. That head is
       not a topological one, so I don't know what to do.

    -  I could try to run push -f     

    -  or I could try to merge that rev with tip as  well. I looked at the
       rev, it is from September last year and I don't understand
       why it has a head. Most likely from the data corruption?

Last comment: the bitbucket repo has 4 named branches
year-2016-17                 518:7cdd8585c0ac
default                      472:6004f738e2d5
exam-geo2-2016-parts         456:adfdfc6ba6c5
no-exam                      256:1888f9c19fce

But five topological heads the 5th is
changeset:   386:1aea182c63f3
parent:      378:05af9bca5fae

Which I don't understand frankly where that comes from.

The recovered one with convert has also 4 branches (the same as
bitbucket, and 5 topological heads.

But the one in which I merged the recovered one with the bitbucket, has
these heads


changeset:   585:c3ca8d2bfcd0
branch:      exam-geo2-2016-parts
user:        Uwe Brauer <oub at mat.ucm.es>
date:        Thu Jun 30 16:14:23 2016 +0000
summary:     Finish publishing notas

changeset:   456:adfdfc6ba6c5
branch:      exam-geo2-2016-parts
user:        Uwe Brauer <oub at mat.ucm.es>
date:        Thu Jun 30 16:14:23 2016 +0000
summary:     Finish publishing notas

What the heck happened here?

Also it confuses me that when pushing hg complains about
rev c698c52f6a03! That is a head but not a topological one.
I thought I understand the graphs and the heads but I don't. Is the non
topological head harmful?

 I swore I will never use rsync for repos again

Thanks

Uwe Brauer 





More information about the Mercurial mailing list