[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH] build_clone: git clean newly cloned trees



This may seem redundant, however:

git does not track empty directories.  So it can happen that a
directory is created as part of `git clone', but is empty in the
revision switched to with `git checkout'.

In this situation, the tree we are going to build ought not to contain
this directory, because that directory will not (in general) be
produced, eg when the revision being switched to becomes master.

We can use git clean to produce a working tree whose contents -
including the presence or absence of empty directories - depends only
on the commit we are trying to check out, and not on the previous
states of the git history or working tree.

For example, if a directory is made empty (ie, deleted, since git does
not distinguish) in xen.git#staging, osstest's clones of
xen.git#master will produce the directory, but `git checkout' of
staging won't delete it.  If the xen.git build system mistakenly
depends on this directory, we won't detect this until the deletion
reaches master.  This situation actually occurred with xen.git#598e97f
"tools/python: remove broken xl binding" (fixed in b261366f).

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 Osstest/TestSupport.pm |    1 +
 1 file changed, 1 insertion(+)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index f9eba6b..aa41952 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -1231,6 +1231,7 @@ END
 END
                          (length($r{"revision_$which"}) ? <<END : ''));
            git checkout '$r{"revision_$which"}'
+           git clean -xdf
 END
     } else {
         die "$vcs $which $tree ?";
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.