Re: [U-Boot] [PATCH v3 18/18] buildman: Ignore conflicting tags

2014-09-10 Thread Simon Glass
Applied to u-boot-x86/buildman.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v3 18/18] buildman: Ignore conflicting tags

2014-09-05 Thread Simon Glass
Tags like Series-version are normally expected to appear once, and with a
unique value. But buildman doesn't actually look at these tags. So ignore
conflicts.

This allows bulidman to build a branch containing multiple patman series.

Reported-by: Steve Rae s...@broadcom.com
Signed-off-by: Simon Glass s...@chromium.org
---

Changes in v3:
- Add new patch to ignore conflicting tags in buildman

Changes in v2: None

 tools/buildman/control.py   | 15 +++
 tools/buildman/func_test.py |  3 +++
 tools/patman/patchstream.py |  4 +++-
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 06ca606..a2259c3 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -166,6 +166,10 @@ def DoBuildman(options, args, toolchains=None, 
make_func=None, boards=None,
 # upstream/master~..branch but that isn't possible if upstream/master is
 # a merge commit (it will list all the commits that form part of the
 # merge)
+# Conflicting tags are not a problem for buildman, since it does not use
+# them. For example, Series-version is not useful for buildman. On the
+# other hand conflicting tags will cause an error. So allow later tags
+# to overwrite earlier ones by setting allow_overwrite=True
 if options.branch:
 if count == -1:
 range_expr = gitutil.GetRangeInBranch(options.git_dir,
@@ -173,19 +177,14 @@ def DoBuildman(options, args, toolchains=None, 
make_func=None, boards=None,
 upstream_commit = gitutil.GetUpstream(options.git_dir,
   options.branch)
 series = patchstream.GetMetaDataForList(upstream_commit,
-options.git_dir, 1)
+options.git_dir, 1, series=None, allow_overwrite=True)
 
-# Conflicting tags are not a problem for buildman, since it does
-# not use them. For example, Series-version is not useful for
-# buildman. On the other hand conflicting tags will cause an
-# error. So allow later tags to overwrite earlier ones.
-series.allow_overwrite = True
 series = patchstream.GetMetaDataForList(range_expr,
-  options.git_dir, None, series)
+options.git_dir, None, series, allow_overwrite=True)
 else:
 # Honour the count
 series = patchstream.GetMetaDataForList(options.branch,
-options.git_dir, count)
+options.git_dir, count, series=None, allow_overwrite=True)
 else:
 series = None
 options.verbose = True
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index c37f1b6..75eb3a9 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -79,6 +79,7 @@ Date:   Thu Aug 14 16:48:25 2014 -0600
 Series-changes: 7
 - Add new patch to fix the 'reverse' bug
 
+Series-version: 8
 
 Change-Id: I79078f792e8b390b8a1272a8023537821d45feda
 Reported-by: York Sun york...@freescale.com
@@ -156,6 +157,8 @@ Date:   Fri Aug 22 15:57:39 2014 -0600
 Series-changes: 9
 - Add new patch to avoid changing the order of tags
 
+Series-version: 9
+
 Suggested-by: Masahiro Yamada yamad...@jp.panasonic.com
 Change-Id: Ib1518588c1a189ad5c3198aae76f8654aed8d0db
 ]
diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index b3e66c3..d630157 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -355,7 +355,7 @@ class PatchStream:
 
 
 def GetMetaDataForList(commit_range, git_dir=None, count=None,
-   series = None):
+   series = None, allow_overwrite=False):
 Reads out patch series metadata from the commits
 
 This does a 'git log' on the relevant commits and pulls out the tags we
@@ -367,11 +367,13 @@ def GetMetaDataForList(commit_range, git_dir=None, 
count=None,
 count: Number of commits to list, or None for no limit
 series: Series object to add information into. By default a new series
 is started.
+allow_overwrite: Allow tags to overwrite an existing tag
 Returns:
 A Series object containing information about the commits.
 
 if not series:
 series = Series()
+series.allow_overwrite = allow_overwrite
 params = gitutil.LogCmd(commit_range,reverse=True, count=count,
 git_dir=git_dir)
 stdout = command.RunPipe([params], capture=True).stdout
-- 
2.1.0.rc2.206.gedb03e5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot