problems with the hg-git plugin and bookmarks

Uwe Brauer oub at mat.ucm.es
Tue Sep 6 19:25:23 UTC 2016


>>> "Kevin" == Kevin Bullock <kbullock+mercurial at ringworld.org> writes:

   >> On Sep 6, 2016, at 10:11, Uwe Brauer <oub at mat.ucm.es> wrote:
   >> 
   >>>>> "Uwe" == Uwe Brauer <oub at mat.ucm.es> writes:
   >> 
   >>> o  changeset:   6844:63859b8097d3
   >>> |  tag:         default/master
   >>> |  tag:         tip
   >>> |  parent:      6841:299c7ffa7c22
   >>> |  user:        Mosè Giordano <mose at gnu.org>
   >>> |  date:        Sun Sep 04 18:22:29 2016 +0200
   >>> |  summary:     Do not use a function from cl
   >>> |
   >>> | @  changeset:   6843:24c9ce964599
   >>> |/   bookmark:    master
   >>> |    parent:      6841:299c7ffa7c22
   >>> |    user:        Uwe Brauer <oub at mat.ucm.es>
   >>> |    date:        Sun Sep 04 10:33:45 2016 +0000
   >>> |    summary:     Merge exam into master
   >> 
   >> I stripped both changesets and pulled again now I obtain
   >> 
   >> pulling from git://git.savannah.gnu.org/auctex.git
   >> no changes found
   >> abort: unknown revision '63859b8097d34576e918d544c1cac0ba869efe69'!
   >> 
   >> So I think I can forget that repo?! And must clone it again?

   > When you are preparing a patch to submit upstream, you don't generally
   > want to merge it into master yourself. But your log tells me that you
   > didn't actually merge it, because your final commit has one parent.

   > The two heads in your repo reflect exactly what would've happened if
   > you were using git locally: your 'master' is in a different place than
   > upstream's 'master', so both are marked. To resolve this, you'll have
   > to either rebase your changes onto default/master, or merge
   > default/master into your branch. Again, since you're just submitting a
   > patch, you don't generally want to introduce any merges, so rebase is
   > the preferred choice.

   > Unfortunately hg-git has some rough edges around history editing, but
   > you should be able to get unstuck by running `hg git-cleanup`.

I did this on the repo [after stripping] which now tells me 
 
pulling from git://git.savannah.gnu.org/auctex.git
no changes found
abort: unknown revision '63859b8097d34576e918d544c1cac0ba869efe69'!

That is the one I stripped (and therefore changeset
63859b8097d34576e918d544c1cac0ba869efe69)
is no longer present.

The result  of hg git-cleanup was 


abort: No such file or directory: /home/oub/ALLES/emacs/site-lisp/packages/src/Hg-Git/auctex-bridge-corrupt/.hg/git-mapfile

So something is wrong here. Fortunately I have all my stuff in a
different local repo (auctex-hg), so I could do what
https://xkcd.com/1597/
suggests

 hg clone git://git.savannah.gnu.org/auctex.git auctex-bridge

And then push the changes (which are on a different branch/bookmark) to
the freshly cloned auctex-bridge.

But I have a fundamental problem with the approach using patches via
export/import. (Maybe the same problem would occur without using the
hg-git plugin). But so far for other repos I have used pull and push
(which I can't for auctex, since I don't have write access) and I was
fortunate enough not to run into any difficulties.

But for auctex  it is different.

Here is my strategy:


    -  I create in auctex-bridge a new bookmark, say exam, add files
       stuff and commit. Then what? So far I have merged my changes in
       the master branch (gitspeak) which maybe is not wise since I
       cannot push. But once I had them merged I created a patch and
       sent it for inspection.

    -  But then the problem is: meanwhile (my patch is still pending)
       other stuff has been pushed into the repo. 

    -  So it seems wise to pull, and I then what?

    -  I merge? But then my local rep is not in sync with the rep. So I
       strip and then pull?

Uwe Brauer 




More information about the Mercurial mailing list