mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
devtool: use -f and don't use --exclude-standard when adding files to workspace
* I see a case where a tarball contains .gitignore and bunch of files
which are normally ignored in git, but still included in the tarball
(e.g. configure script next to configure.ac)
* when devtool is creating a git repo in workspace it won't include these
files from tarball in the initial devtool-base commit, because
git ls-files won't list them
* but then the first .patch file (without git headers) when applied with
GitApplyTree._applypatch() will add all these still ignored files to a
commit which used to only modify some files, because it's using -f:
# Add all files
shellcmd = ["git", "add", "-f", "-A", "."]
output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
at least in this case it would be better to add all ignored files in
the initial devtool-base commit and then --force-patch-refresh will just
include the small modification as before instead of adding unrelated
files, just because they were initially ignored - this behavior will
also match with the do_patch task in the actual build where the
.gitignore is ignored when unpacking some tarball
* my use-case is fixed in setup_git_repo, but similar function is in
devtool upgrade, I've changed it there as well
(From OE-Core rev: 06a24a615549af3550302a56ea08147000a608f3)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
2b9e3c2111
commit
eb4e519f4c
@@ -196,7 +196,7 @@ def setup_git_repo(repodir, version, devbranch, basetag='devtool-base', d=None):
|
|||||||
if not os.path.exists(os.path.join(repodir, '.git')):
|
if not os.path.exists(os.path.join(repodir, '.git')):
|
||||||
bb.process.run('git init', cwd=repodir)
|
bb.process.run('git init', cwd=repodir)
|
||||||
bb.process.run('git config --local gc.autodetach 0', cwd=repodir)
|
bb.process.run('git config --local gc.autodetach 0', cwd=repodir)
|
||||||
bb.process.run('git add .', cwd=repodir)
|
bb.process.run('git add -f -A .', cwd=repodir)
|
||||||
commit_cmd = ['git']
|
commit_cmd = ['git']
|
||||||
oe.patch.GitApplyTree.gitCommandUserOptions(commit_cmd, d=d)
|
oe.patch.GitApplyTree.gitCommandUserOptions(commit_cmd, d=d)
|
||||||
commit_cmd += ['commit', '-q']
|
commit_cmd += ['commit', '-q']
|
||||||
|
|||||||
@@ -235,14 +235,14 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
|
|||||||
# Copy in new ones
|
# Copy in new ones
|
||||||
_copy_source_code(tmpsrctree, srctree)
|
_copy_source_code(tmpsrctree, srctree)
|
||||||
|
|
||||||
(stdout,_) = __run('git ls-files --modified --others --exclude-standard')
|
(stdout,_) = __run('git ls-files --modified --others')
|
||||||
filelist = stdout.splitlines()
|
filelist = stdout.splitlines()
|
||||||
pbar = bb.ui.knotty.BBProgress('Adding changed files', len(filelist))
|
pbar = bb.ui.knotty.BBProgress('Adding changed files', len(filelist))
|
||||||
pbar.start()
|
pbar.start()
|
||||||
batchsize = 100
|
batchsize = 100
|
||||||
for i in range(0, len(filelist), batchsize):
|
for i in range(0, len(filelist), batchsize):
|
||||||
batch = filelist[i:i+batchsize]
|
batch = filelist[i:i+batchsize]
|
||||||
__run('git add -A %s' % ' '.join(['"%s"' % item for item in batch]))
|
__run('git add -f -A %s' % ' '.join(['"%s"' % item for item in batch]))
|
||||||
pbar.update(i)
|
pbar.update(i)
|
||||||
pbar.finish()
|
pbar.finish()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user