buildman: Remove _of_#_ from results directory paths
Currently, the following scenario will rebuild the first commit even
though it is not really necessary - the commit sha or the position in the
patchset did not change:
$ git am <local-patch-0001>
$ tools/buildman/buildman -P -E -W -b master mx6
<do some more development work>
$ git am <local-patch-0002>
$ tools/buildman/buildman -P -E -W -b master mx6 <- will rebuild the first
commit as well, even
though nothing has
changed about it.
This is due to the fact that previous results directories get removed
when the number of commits change. By removing the _of_#_ part of the
directory path, the commits will be rebuilt only if the commit sha or the
position in the patchset changes. Also, update the testcase to reflect this
change.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index f8e71de..f2756ea 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -70,12 +70,12 @@
like this:
us-net/ base directory
- 01_of_02_g4ed4ebc_net--Add-tftp-speed-/
+ 01_g4ed4ebc_net--Add-tftp-speed-/
sandbox/
u-boot.bin
seaboard/
u-boot.bin
- 02_of_02_g4ed4ebc_net--Check-tftp-comp/
+ 02_g4ed4ebc_net--Check-tftp-comp/
sandbox/
u-boot.bin
seaboard/
@@ -487,8 +487,8 @@
commit = self.commits[commit_upto]
subject = commit.subject.translate(trans_valid_chars)
# See _GetOutputSpaceRemovals() which parses this name
- commit_dir = ('%02d_of_%02d_g%s_%s' % (commit_upto + 1,
- self.commit_count, commit.hash, subject[:20]))
+ commit_dir = ('%02d_g%s_%s' % (commit_upto + 1,
+ commit.hash, subject[:20]))
elif not self.no_subdirs:
commit_dir = 'current'
if not commit_dir:
@@ -1599,7 +1599,7 @@
for dirname in glob.glob(os.path.join(self.base_dir, '*')):
if dirname not in dir_list:
leaf = dirname[len(self.base_dir) + 1:]
- m = re.match('[0-9]+_of_[0-9]+_g[0-9a-f]+_.*', leaf)
+ m = re.match('[0-9]+_g[0-9a-f]+_.*', leaf)
if m:
to_remove.append(dirname)
return to_remove
diff --git a/tools/buildman/test.py b/tools/buildman/test.py
index 40811ba..82d25cf 100644
--- a/tools/buildman/test.py
+++ b/tools/buildman/test.py
@@ -541,7 +541,7 @@
build.commits = self.commits
build.commit_count = len(self.commits)
subject = self.commits[1].subject.translate(builder.trans_valid_chars)
- dirname ='/%02d_of_%02d_g%s_%s' % (2, build.commit_count, commits[1][0],
+ dirname ='/%02d_g%s_%s' % (2, build.commit_count, commits[1][0],
subject[:20])
self.CheckDirs(build, dirname)
@@ -609,9 +609,9 @@
base_dir = tempfile.mkdtemp()
# Add various files that we want removed and left alone
- to_remove = ['01_of_22_g0982734987_title', '102_of_222_g92bf_title',
- '01_of_22_g2938abd8_title']
- to_leave = ['something_else', '01-something.patch', '01_of_22_another']
+ to_remove = ['01_g0982734987_title', '102_g92bf_title',
+ '01_g2938abd8_title']
+ to_leave = ['something_else', '01-something.patch', '01_another']
for name in to_remove + to_leave:
_Touch(name)