Rev 1987: Revert back to using wc.process_committed(), we can't simply update. in file:///data/jelmer/bzr-svn/0.5/
Jelmer Vernooij
jelmer at samba.org
Sun Nov 16 16:13:14 GMT 2008
At file:///data/jelmer/bzr-svn/0.5/
------------------------------------------------------------
revno: 1987
revision-id: jelmer at samba.org-20081116161312-ko5447dyuu1aifs9
parent: jelmer at samba.org-20081116161008-3yogwxlmtjj5lx1g
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Sun 2008-11-16 17:13:12 +0100
message:
Revert back to using wc.process_committed(), we can't simply update.
modified:
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'workingtree.py'
--- a/workingtree.py 2008-11-15 00:50:35 +0000
+++ b/workingtree.py 2008-11-16 16:13:12 +0000
@@ -704,8 +704,46 @@
newrevtree = self.branch.repository.revision_tree(new_revid)
svn_revprops = self.branch.repository._log.revprop_list(rev)
+ def update_settings(wc, path):
+ id = newrevtree.inventory.path2id(path)
+ mutter("Updating settings for %r", id)
+ revnum = self.branch.lookup_revision_id(
+ newrevtree.inventory[id].revision)
+
+ if newrevtree.inventory[id].kind != 'directory':
+ return
+
+ entries = wc.entries_read(True)
+ for name, entry in entries.items():
+ if name == "":
+ continue
+
+ wc.process_committed(self.abspath(path).rstrip("/"),
+ False, self.branch.lookup_revision_id(newrevtree.inventory[id].revision),
+ svn_revprops[properties.PROP_REVISION_DATE],
+ svn_revprops.get(properties.PROP_REVISION_AUTHOR, ""))
+
+ child_path = os.path.join(path, name.decode("utf-8"))
+
+ fileid = newrevtree.inventory.path2id(child_path)
+
+ if newrevtree.inventory[fileid].kind == 'directory':
+ subwc = WorkingCopy(wc, self.abspath(child_path).rstrip("/"), write_lock=True)
+ try:
+ update_settings(subwc, child_path)
+ finally:
+ subwc.close()
+
# Set proper version for all files in the wc
- self._update(self.branch.lookup_revision_id(new_revid))
+ wc = self._get_wc(write_lock=True)
+ try:
+ wc.process_committed(self.basedir,
+ False, self.branch.lookup_revision_id(newrevtree.inventory.root.revision),
+ svn_revprops[properties.PROP_REVISION_DATE],
+ svn_revprops.get(properties.PROP_REVISION_AUTHOR, ""))
+ update_settings(wc, "")
+ finally:
+ wc.close()
self.set_parent_ids([new_revid])
More information about the bazaar-commits
mailing list