[Bug 3873] New: Pulls can race with bookmark updates on the server, causing bookmarks not to be updated at all

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Fri Mar 29 16:34:08 CDT 2013


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

          Priority: normal
            Bug ID: 3873
                CC: kbullock+mercurial at ringworld.org,
                    mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: Pulls can race with bookmark updates on the server,
                    causing bookmarks not to be updated at all
          Severity: bug
    Classification: Unclassified
                OS: All
          Reporter: sid0 at fb.com
          Hardware: All
            Status: UNCONFIRMED
           Version: unspecified
         Component: Mercurial
           Product: Mercurial

$ hg init master
$ cd master; touch a; hg ci -Am "a"; hg book book1; cd ..
$ hg clone master slave
$ echo "[hooks]\nchangegroup = echo Press Enter to finish pulling; read -r
DUMMY" >> slave/.hg/hgrc
$ cd master; touch b; hg ci -Am "b"; cd ..
$ cd slave
$ hg pull

This will pull in b, then pause until you press Enter. In a different terminal
(or using job control):

$ cd ../master; touch c; hg ci -Am "c"

Now resume the slave pull. Note that the bookmark didn't get moved at all on
the slave, not even to b.

We're hitting this at FB with large pulls, where the master bookmark on the
server gets updated in the middle of the pull. The master bookmark on the
client doesn't get updated at all.

Seems like a fix would be to either do the bookmark determination
simultaneously with the changeset determination, or to do it before pulling in
changesets if possible.

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


More information about the Mercurial-devel mailing list