tests/test-branch-tag-confict.t
author Idan Kamara <idankk86@gmail.com>
Mon, 25 Jul 2011 15:03:02 +0300
changeset 14927 2aa3e07b2f07
parent 14162 301725c3df9a
child 15615 41885892796e
permissions -rw-r--r--
posix, windows: introduce cachestat This class contains a stat result, and possibly other file info to reliably determine between two points in time whether a file has changed. Uniquely identifying a file gives us that reliability because we either atomic rename or append. So one of two will happen: the file 'id' will change, or the size of the file will change. posix implements it simply by calling os.stat() and checking if the result has st_ino. For now on Windows we always assume the path is uncacheable. This can be improved on NTFS due to file IDs: http://msdn.microsoft.com/en-us/library/aa363788(v=vs.85).aspx So we need to find out if a file path is on an NTFS drive, for that we have: - GetVolumeInformation, which unfortunately only works with a root path (but is available on XP) - GetVolumeInformationByHandleW, works on a full file path but requires Vista or higher
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13750
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     1
Initial setup.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     2
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     3
  $ hg init repo
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     4
  $ cd repo
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     5
  $ touch thefile
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     6
  $ hg ci -A -m 'Initial commit.'
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     7
  adding thefile
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     8
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     9
Create a tag.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    10
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    11
  $ hg tag branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    12
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    13
Create a branch with the same name as the tag.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    14
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    15
  $ hg branch branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    16
  marked working directory as branch branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    17
  $ hg ci -m 'Create a branch with the same name as a tag.'
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    18
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    19
This is what we have:
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    20
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    21
  $ hg log
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13750
diff changeset
    22
  changeset:   2:10519b3f489a
13750
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    23
  branch:      branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    24
  tag:         tip
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    25
  user:        test
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    26
  date:        Thu Jan 01 00:00:00 1970 +0000
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    27
  summary:     Create a branch with the same name as a tag.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    28
  
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    29
  changeset:   1:2635c45ca99b
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    30
  user:        test
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    31
  date:        Thu Jan 01 00:00:00 1970 +0000
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    32
  summary:     Added tag branchortag for changeset f57387372b5d
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    33
  
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    34
  changeset:   0:f57387372b5d
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    35
  tag:         branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    36
  user:        test
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    37
  date:        Thu Jan 01 00:00:00 1970 +0000
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    38
  summary:     Initial commit.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    39
  
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    40
Update to the tag:
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    41
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    42
  $ hg up 'tag(branchortag)'
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    43
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    44
  $ hg parents
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    45
  changeset:   0:f57387372b5d
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    46
  tag:         branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    47
  user:        test
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    48
  date:        Thu Jan 01 00:00:00 1970 +0000
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    49
  summary:     Initial commit.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    50
  
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    51
Updating to the branch:
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    52
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    53
  $ hg up 'branch(branchortag)'
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    54
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    55
  $ hg parents
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13750
diff changeset
    56
  changeset:   2:10519b3f489a
13750
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    57
  branch:      branchortag
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    58
  tag:         tip
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    59
  user:        test
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    60
  date:        Thu Jan 01 00:00:00 1970 +0000
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    61
  summary:     Create a branch with the same name as a tag.
7eb82f88e157 # User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    62