Merge lp:~jelmer/brz/setting-file-ids into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merged at revision: 6742
Proposed branch: lp:~jelmer/brz/setting-file-ids
Merge into: lp:brz
Diff against target: 81 lines (+25/-0)
3 files modified
breezy/tests/per_workingtree/test_workingtree.py (+5/-0)
breezy/workingtree.py (+15/-0)
doc/en/release-notes/brz-3.0.txt (+5/-0)
To merge this branch: bzr merge lp:~jelmer/brz/setting-file-ids
Reviewer Review Type Date Requested Status
Martin Packman Approve
Review via email: mp+328273@code.launchpad.net

Commit message

Add a ``WorkingTreeFormat.supports_setting_file_ids`` property, which can be set for svn/git working tree formats.

Description of the change

Add a ``WorkingTreeFormat.supports_setting_file_ids`` property, which can be set for svn/git working tree formats.

The idea is that tests can be skipped based on this property.

To post a comment you must log in.
Revision history for this message
Martin Packman (gz) wrote :

Makes sense.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'breezy/tests/per_workingtree/test_workingtree.py'
--- breezy/tests/per_workingtree/test_workingtree.py 2017-06-11 18:41:26 +0000
+++ breezy/tests/per_workingtree/test_workingtree.py 2017-07-30 19:18:06 +0000
@@ -1232,3 +1232,8 @@
1232 self.assertSubset(1232 self.assertSubset(
1233 [self.workingtree_format.supports_versioned_directories],1233 [self.workingtree_format.supports_versioned_directories],
1234 (True, False))1234 (True, False))
1235
1236 def test_supports_setting_file_ids(self):
1237 self.assertSubset(
1238 [self.workingtree_format.supports_setting_file_ids],
1239 (True, False))
12351240
=== modified file 'breezy/workingtree.py'
--- breezy/workingtree.py 2017-07-21 13:41:26 +0000
+++ breezy/workingtree.py 2017-07-30 19:18:06 +0000
@@ -76,6 +76,11 @@
76ERROR_PATH_NOT_FOUND = 3 # WindowsError errno code, equivalent to ENOENT76ERROR_PATH_NOT_FOUND = 3 # WindowsError errno code, equivalent to ENOENT
7777
7878
79class SettingFileIdUnsupported(errors.BzrError):
80
81 _fmt = "This format does not support setting file ids."""
82
83
79class TreeEntry(object):84class TreeEntry(object):
80 """An entry that implements the minimum interface used by commands.85 """An entry that implements the minimum interface used by commands.
8186
@@ -229,6 +234,9 @@
229 def supports_views(self):234 def supports_views(self):
230 return self.views.supports_views()235 return self.views.supports_views()
231236
237 def supports_setting_file_ids(self):
238 return self._format.supports_setting_file_ids
239
232 def get_config_stack(self):240 def get_config_stack(self):
233 """Retrieve the config stack for this tree.241 """Retrieve the config stack for this tree.
234242
@@ -771,6 +779,8 @@
771 """See MutableTree.mkdir()."""779 """See MutableTree.mkdir()."""
772 if file_id is None:780 if file_id is None:
773 file_id = generate_ids.gen_file_id(os.path.basename(path))781 file_id = generate_ids.gen_file_id(os.path.basename(path))
782 elif not self.supports_setting_file_ids():
783 raise SettingFileIdUnsupported()
774 os.mkdir(self.abspath(path))784 os.mkdir(self.abspath(path))
775 self.add(path, file_id, 'directory')785 self.add(path, file_id, 'directory')
776 return file_id786 return file_id
@@ -1296,6 +1306,8 @@
1296 @needs_tree_write_lock1306 @needs_tree_write_lock
1297 def set_root_id(self, file_id):1307 def set_root_id(self, file_id):
1298 """Set the root id for this tree."""1308 """Set the root id for this tree."""
1309 if not self.supports_setting_file_ids():
1310 raise SettingFileIdUnsupported()
1299 # for compatability1311 # for compatability
1300 if file_id is None:1312 if file_id is None:
1301 raise ValueError(1313 raise ValueError(
@@ -1732,6 +1744,9 @@
17321744
1733 supports_versioned_directories = None1745 supports_versioned_directories = None
17341746
1747 supports_setting_file_ids = True
1748 """If this format allows setting the file id."""
1749
1735 def initialize(self, controldir, revision_id=None, from_branch=None,1750 def initialize(self, controldir, revision_id=None, from_branch=None,
1736 accelerator_tree=None, hardlink=False):1751 accelerator_tree=None, hardlink=False):
1737 """Initialize a new working tree in controldir.1752 """Initialize a new working tree in controldir.
17381753
=== modified file 'doc/en/release-notes/brz-3.0.txt'
--- doc/en/release-notes/brz-3.0.txt 2017-07-23 22:06:41 +0000
+++ doc/en/release-notes/brz-3.0.txt 2017-07-30 19:18:06 +0000
@@ -172,6 +172,11 @@
172 * A new ``Repository.iter_revisions`` method has been added.172 * A new ``Repository.iter_revisions`` method has been added.
173 (Jelmer Vernooij)173 (Jelmer Vernooij)
174174
175 * A new ``WorkingTreeFormat.supports_setting_file_ids`` property
176 has been added that can be set to False to indicate a working tree
177 doesn't support e.g. passing a file_id into ``WorkingTree.mkdir``.
178 (Jelmer Vernooij, #1707533)
179
175Internals180Internals
176*********181*********
177182

Subscribers

People subscribed via source and target branches