[Sugar-devel] [PATCH sugar-toolkit] Bundlebuilder: don't fail to package if git is not installed, OLPC #11341
Simon Schampijer
simon at schampijer.de
Thu Nov 10 03:18:30 EST 2011
On 10/24/2011 02:43 PM, Sascha Silbe wrote:
> Excerpts from Simon Schampijer's message of 2011-10-21 12:27:02 +0200:
>
>> We need to make sure that we do not fail if git is not
>> installed and use the same fallback code as if we are
>> in a directory where no git information is present.
>
> How about:
>
> """
> When git is installed, it will return non-zero if it gets asked to list
> the files in a non-repository. The subprocess.Popen instantiation is
> successful in this case and the returncode attribute will contain the
> error code from git. The current code handles this fine.
>
> If git isn't installed, however, trying to instantiate subprocess.Popen
> will fail with OSError. We need to catch this and fall back to our own
> source file listing facility like we do for the non-repository case.
> """
Sounds good to me.
> [sugar.activity.bundlebuilder.XOPackager]
>> def _get_files_in_git(self):
>> - git_ls = subprocess.Popen(['git', 'ls-files'], stdout=subprocess.PIPE,
>> - cwd=self.config.source_dir)
>> + try:
>> + git_ls = subprocess.Popen(['git', 'ls-files'],
>> + stdout=subprocess.PIPE,
>> + cwd=self.config.source_dir)
>> + except OSError:
>> + # Git not installed. Fall back to filtered list
>> + return list_files(self.config.source_dir,
>> + IGNORE_DIRS, IGNORE_FILES)
>
> Since our own listing code can generate different results than git
> ls-files does, we should log a warning (same applies to
> SourcePackager.get_files()).
>
> Sascha
Yes, I can add the warning.
Regards,
Simon
More information about the Sugar-devel
mailing list