Rev 301: Alternative fix to replace problem. in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev
Jelmer Vernooij
jelmer at samba.org
Tue Dec 26 04:05:12 GMT 2006
------------------------------------------------------------
revno: 301
revision-id: jelmer at samba.org-20061226040444-bojmquiro1s5yq0k
parent: jelmer at samba.org-20061226023540-mimrjtt0za3exypm
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Tue 2006-12-26 05:04:44 +0100
message:
Alternative fix to replace problem.
modified:
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'fetch.py'
--- a/fetch.py 2006-12-26 02:35:40 +0000
+++ b/fetch.py 2006-12-26 04:04:44 +0000
@@ -109,20 +109,6 @@
def add_directory(self, path, parent_baton, copyfrom_path, copyfrom_revnum, pool):
file_id, revision_id = self.id_map[path]
- if copyfrom_path is not None:
- base_file_id, base_revid = self.source.path_to_file_id(copyfrom_revnum, os.path.join(self.parent_branch, copyfrom_path))
- if base_file_id == file_id:
- self.dir_baserev[file_id] = [base_revid]
- ie = self.inventory[file_id]
- ie.revision = revision_id
- return file_id
-
- # there is a strange bug in the subversion editor that causes
- # it to not report deletes for files that are
- # being replaced (R) by an older copy of themselves
- if copyfrom_path == path and base_file_id in self.inventory:
- del self.inventory[base_file_id]
-
self.dir_baserev[file_id] = []
ie = self.inventory.add_path(path, 'directory', file_id)
ie.revision = revision_id
@@ -130,7 +116,19 @@
return file_id
def open_directory(self, path, parent_baton, base_revnum, pool):
- return self.add_directory(path, parent_baton, path, base_revnum, pool)
+ file_id, revision_id = self.id_map[path]
+ assert base_revnum >= 0
+ base_file_id, base_revid = self.source.path_to_file_id(base_revnum, os.path.join(self.parent_branch, path))
+ if file_id == base_file_id:
+ self.dir_baserev[file_id] = [base_revid]
+ ie = self.inventory[file_id]
+ else:
+ # Replace
+ del self.inventory[base_file_id]
+ self.dir_baserev[file_id] = []
+ ie = self.inventory.add_path(path, 'directory', file_id)
+ ie.revision = revision_id
+ return file_id
def change_dir_prop(self, id, name, value, pool):
if name == SVN_PROP_BZR_MERGE:
More information about the bazaar-commits
mailing list