On 07/11/16, Patrick Steinhardt wrote:
> attached is a patch that fixes a test for Git mirrors. The error
> results from the fact that Git does not track empty directories,
> which one test relies upon.
>
> As we're already doing some path processing for the missing
> directories and as we're also creating directories in the other
> import tests, I think this is the most sensible place to fix the
> issue. For Subversion working copies it becomes a no-op anyway as
> the directories already exist.
I just took a quick look at this. Your patch is of a kind which would
have to be repeated for each new test that uses the same approach. It
also seems a bit redundant: that small extra bit of code is almost
enough code to create the whole tree from scratch.
It seems to me that storing what is supposed to be a plain unversioned
disk tree within our Subversion versioned tree isn't the right approach.
Instead I think it would be better to store the import data tree as a
Python data structure within the test and create it at run time. If
there isn't already a handy function for doing this, there should be.
Something like this:
[[[
Index: subversion/tests/cmdline/import_tests.py
===================================================================
--- subversion/tests/cmdline/import_tests.py (revision 1767744)
+++ subversion/tests/cmdline/import_tests.py (working copy)
@@ -446,8 +446,8 @@ def import_inherited_ignores(sbox):
# DIR7
# file7.foo
# DIR8.noo
- import_tree_dir = os.path.join(os.path.dirname(sys.argv[0]),
- 'import_tests_data', 'import_tree')
+ import_tree_path = 'import_tree'
+ import_tree_dir = os.path.join(sbox.wc_dir, import_tree_path)
# Relative WC paths of the imported tree.
dir1_path = os.path.join('DIR1.noo')
@@ -466,6 +466,31 @@ def import_inherited_ignores(sbox):
file7_path = os.path.join('DIR6', 'DIR7', 'file7.foo')
dir8_path = os.path.join('DIR6', 'DIR7', 'DIR8.noo')
+ import_dirs = [os.path.join(import_tree_path, p) for p in [
+ dir1_path,
+ dir2_path,
+ dir3_path,
+ dir4_path,
+ dir5_path,
+ dir6_path,
+ dir7_path,
+ dir8_path,
+ ]]
+ import_files = [os.path.join(import_tree_path, p) for p in [
+ file1_path,
+ file2_path,
+ file3_path,
+ file4_path,
+ file5_path,
+ file6_path,
+ file7_path,
+ ]]
+
+ sbox.simple_mkdir(import_tree_path)
+ sbox.simple_mkdir(*[svntest.wc.to_relpath(p) for p in import_dirs])
+ sbox.simple_add_text('A file',
+ *[svntest.wc.to_relpath(p) for p in import_files])
+
# Import the tree to ^/A/B/E.
# We should not see any *.noo paths because those are blocked at the
# root of the repository by the svn:global-ignores property. Likewise
]]]
and:
svn rm subversion/tests/cmdline/import_tests_data
Does that work for you?
- Julian
Received on 2016-11-16 17:31:00 CET