Rev 2493: do not update_entry from disk if it is supposed to be absent or renamed in http://bzr.arbash-meinel.com/branches/bzr/experimental/dirstate-nohc

John Arbash Meinel john at arbash-meinel.com
Fri Mar 2 00:27:13 GMT 2007


At http://bzr.arbash-meinel.com/branches/bzr/experimental/dirstate-nohc

------------------------------------------------------------
revno: 2493
revision-id: john at arbash-meinel.com-20070302002706-xz1pf69mu3tk9ud8
parent: john at arbash-meinel.com-20070302000729-5qybyk0c6aldecpj
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: dirstate-nohc
timestamp: Thu 2007-03-01 18:27:06 -0600
message:
  do not update_entry from disk if it is supposed to be absent or renamed
  and make sure to use the current target_details afterwards
  in case something has changed.
modified:
  bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
-------------- next part --------------
=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py	2007-03-02 00:07:29 +0000
+++ b/bzrlib/workingtree_4.py	2007-03-02 00:27:06 +0000
@@ -1602,14 +1602,18 @@
                 source_details = NULL_PARENT_DETAILS
             else:
                 source_details = entry[1][source_index]
-            if path_info is not None:
+            target_details = entry[1][target_index]
+            target_minikind = target_details[0]
+            if path_info is not None and target_minikind not in 'ar':
+                assert target_index == 0
                 link_or_sha1 = state.update_entry(entry, abspath=path_info[4],
                                                   stat_value=path_info[3])
+                # The entry may have been modified by update_entry
+                target_details = entry[1][target_index]
+                target_minikind = target_details[0]
             else:
                 link_or_sha1 = None
-            target_details = entry[1][target_index]
             source_minikind = source_details[0]
-            target_minikind = target_details[0]
             if source_minikind in 'fdlr' and target_minikind in 'fdl':
                 # claimed content in both: diff
                 #   r    | fdl    |      | add source to search, add id path move and perform



More information about the bazaar-commits mailing list