[U-Boot] [PATCH] moveconfig: Add a new --git-ref option
Joe Hershberger
joe.hershberger at gmail.com
Wed Jun 10 16:16:09 CEST 2015
Hi Masahiro-san,
On Thu, Jun 4, 2015 at 11:54 PM, Masahiro Yamada
<yamada.masahiro at socionext.com> wrote:
> Hi Joe,
>
>
> 2015-05-30 6:23 GMT+09:00 Joe Hershberger <joe.hershberger at ni.com>:
>> This option allows the 'make *_defconfig' step to run against a former
>> repo state, while the savedefconfig step runs against the current repo
>> state. This is convenient for the case where something in the Kconfig
>> has changed such that the defconfig is no longer complete with the new
>> Kconfigs. This feature allows the .config to be built assuming those old
>> Kconfigs, but then savedefconfig based on the new state of the Kconfigs.
>>
>> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
>
>
> This idea seems nice, but I have some comments about the implementation.
>
>
>
>> + defconfig_src_dir = ''
>> +
>> + if options.git_ref:
>> + work_dir = WorkDir()
>> + defconfig_src_dir = work_dir.get()
>> + cwd = os.getcwd()
>> + print 'Cloning git repo for \'make *_defconfig\' step...'
>
> You can use signle quotes without escape sequences inside "...", and vice versa.
OK
>> diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py
>> index 9e739d8..138f989 100644
>> --- a/tools/patman/gitutil.py
>> +++ b/tools/patman/gitutil.py
>> @@ -61,6 +61,21 @@ def CountCommitsToBranch():
>> patch_count = int(stdout)
>> return patch_count
>>
>> +def CommitHash(commit_ref):
>> + """Gets the hash for a commit
>> +
>> + Args:
>> + commit_ref: Commit ref to look up
>> +
>> + Return:
>> + Hash of revision, if any, else None
>> + """
>> + pipe = ['git', 'rev-parse', '--short', commit_ref]
>> + stdout = command.RunPipe([pipe], capture=True, oneline=True).stdout
>> +
>> + hash = stdout.strip()
>> + return hash
>> +
>> def NameRevision(commit_hash):
>> """Gets the revision name for a commit
>
>
>
> Finally, this tool is going to depend on patman. I am afraid this
> tool is getting messy.
>
> gitutils.py depends on command.py, and then command.py depends on
> cros_subprocess.py.
>
> Do you really need to invoke such a chain of libraries
> to run a sub-process?
Why does that matter?
> For example, you can get a hash in a single line like this:
>
> subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD'])
I certainly can do that, but it seems better to reuse the common
functionality. This tool doesn't seem so useful elsewhere that a
person would want it to work easily outside of u-boot. In u-boot,
patman exists. Simon did the same thing for buildman. I can change it
to call the git commands directly sine what I'm doing is simple, but I
don't see any value in doing it.
Simon, what do you think?
Thanks,
-Joe
More information about the U-Boot
mailing list