Mercurial > hg
view tests/test-basic.t @ 24353:3f6bf9f29e7b
bookmarks: prevent divergent bookmark from being updated unexpectedly
Before this patch, "@99" suffixed bookmark may be updated unexpectedly
by the bookmark value on the remote side at "hg pull", if all of "@1"
to "@99" suffixed bookmarks exist in the local repository, because
variable "n" still refers "@99" suffixed bookmark after the loop to
examine "@num" suffixes, even though it already exists in the local
repository.
This patch prevents divergent bookmark from being updated
unexpectedly, and shows warning message in such situation.
This patch uses original python script "seq.py" instead of "seq"
command to create sequence numbers in the test, because "seq" command
may not be available: it isn't defined in recent POSIX specification
(POSIX.1-2001 2013 Edition or XPG7)
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 17 Mar 2015 18:20:24 +0900 |
parents | 42ed0780ec4b |
children | dc4daf028f9c |
line wrap: on
line source
Create a repository: $ hg config defaults.backout=-d "0 0" defaults.commit=-d "0 0" defaults.shelve=--date "0 0" defaults.tag=-d "0 0" largefiles.usercache=$TESTTMP/.cache/largefiles (glob) ui.slash=True ui.interactive=False ui.mergemarkers=detailed ui.promptecho=True $ hg init t $ cd t Make a changeset: $ echo a > a $ hg add a $ hg commit -m test This command is ancient: $ hg history changeset: 0:acb14030fe0a tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: test Verify that updating to revision 0 via commands.update() works properly $ cat <<EOF > update_to_rev0.py > from mercurial import ui, hg, commands > myui = ui.ui() > repo = hg.repository(myui, path='.') > commands.update(myui, repo, rev=0) > EOF $ hg up null 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ python ./update_to_rev0.py 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg identify -n 0 Poke around at hashes: $ hg manifest --debug b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a $ hg cat a a Verify should succeed: $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 1 changesets, 1 total revisions At the end... $ cd ..