.hgtags
author Vadim Gelfer <vadim.gelfer@gmail.com>
Fri, 24 Mar 2006 09:08:12 -0800
changeset 1998 65cc17ae9649
parent 1666 0fc1b588976f
child 2052 c0b945c5df08
permissions -rw-r--r--
fix race in localrepo.addchangegroup. localrepo.addchangegroup writes to changelog, then manifest, then normal files. this breaks access ordering. if reader reads changelog while manifest is being written, can find pointers into places in manifest that are not yet written. same can happen for manifest and normal files. fix is to make almost no change to localrepo.addchangegroup. it must to write changelog and manifest data early because it has to read them while writing other files. instead, write changelog and manifest data to temp file that reader cannot see, then append temp data to manifest after all normal files written, finally append temp data to changelog. temp file code is in new appendfile module. can be used in other places with small changes. much smaller race still left. we write all new data in one write call, but reader can maybe see partial update because python or os or filesystem cannot always make write really atomic. file locking no help: slow, not portable, not reliable over nfs. only real safe other plan is write to temp file every time and rename, but performance bad when manifest or changelog is big.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
     1
d40cc5aacc31ed673d9b5b24f98bee78c283062c 0.4f
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
     2
1c590d34bf61e2ea12c71738e5a746cd74586157 0.4e
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
     3
7eca4cfa8aad5fce9a04f7d8acadcd0452e2f34e 0.4d
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
     4
b4d0c3786ad3e47beacf8412157326a32b6d25a4 0.4c
189
37625132fe37 Add tag for 0.5
mpm@selenic.com
parents: 66
diff changeset
     5
f40273b0ad7b3a6d3012fd37736d0611f41ecf54 0.5
194
4ec26766be83 Update tags
mpm@selenic.com
parents: 189
diff changeset
     6
0a28dfe59f8fab54a5118c5be4f40da34a53cdb7 0.5b
458
ff8fbf99cd64 Added tag 0.6 for changeset 12e0fdbc57a0be78f0e817fd1d170a3615cd35da
mpm@selenic.com
parents: 194
diff changeset
     7
12e0fdbc57a0be78f0e817fd1d170a3615cd35da 0.6
685
79fb7032739f Added tag 0.6b for changeset 4ccf3de52989b14c3d84e1097f59e39a992e00bd
Matt Mackall <mpm@selenic.com>
parents: 458
diff changeset
     8
4ccf3de52989b14c3d84e1097f59e39a992e00bd 0.6b
972
0bc72d91aeda Added tag 0.6c for changeset eac9c8efcd9bd8244e72fb6821f769f450457a32
mpm@selenic.com
parents: 685
diff changeset
     9
eac9c8efcd9bd8244e72fb6821f769f450457a32 0.6c
1266
703783bc09c4 Added tag 0.7 for changeset 979c049974485125e1f9357f6bbe9c1b548a64c3
mpm@selenic.com
parents: 981
diff changeset
    10
979c049974485125e1f9357f6bbe9c1b548a64c3 0.7
1666
0fc1b588976f Added tag 0.8 for changeset 3a56574f329a368d645853e0f9e09472aee62349
Matt Mackall <mpm@selenic.com>
parents: 1266
diff changeset
    11
3a56574f329a368d645853e0f9e09472aee62349 0.8