Patchwork buildhistory: record removals with Git 2.0 and later

login
register
mail settings
Submitter Jonathan Liu
Date May 31, 2013, 9:42 a.m.
Message ID <1369993335-21441-1-git-send-email-net147@gmail.com>
Download mbox | patch
Permalink /patch/50921/
State Accepted
Commit a45a247e2cfa58892a0c9eb050d603a38cd839db
Headers show

Comments

Jonathan Liu - May 31, 2013, 9:42 a.m.
There is a behavior change with Git 2.0 where "git add ." will no
longer record removals by default unless -A (--all) is specified.
Change to "git add -A ." so removals are recorded with Git 2.0 and
later.

Signed-off-by: Jonathan Liu <net147@gmail.com>
---
 meta/classes/buildhistory.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Jonathan Liu - May 31, 2013, 10:29 a.m.
On 31/05/2013 7:42 PM, Jonathan Liu wrote:
> There is a behavior change with Git 2.0 where "git add ." will no
> longer record removals by default unless -A (--all) is specified.
> Change to "git add -A ." so removals are recorded with Git 2.0 and
> later.
>
> Signed-off-by: Jonathan Liu <net147@gmail.com>
> ---
>   meta/classes/buildhistory.bbclass | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
Hmm... looks like I interpreted the Git warning incorrectly. Maybe I 
need to look into this a bit more and perhaps change the commit message.

The following appears after a build with buildhistory enabled:
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'test.txt' that are
removed from your working tree are ignored with this version of Git.

* 'git add --ignore-removal <pathspec>', which is the current default,
   ignores paths you removed from your working tree.

* 'git add --all <pathspec>' will let you also record the removals.

Run 'git status' to check the paths you removed from your working tree.

Regards,
Jonathan
Jonathan Liu - May 31, 2013, 10:31 a.m.
On 31/05/2013 8:29 PM, Jonathan Liu wrote:
> On 31/05/2013 7:42 PM, Jonathan Liu wrote:
>> There is a behavior change with Git 2.0 where "git add ." will no
>> longer record removals by default unless -A (--all) is specified.
>> Change to "git add -A ." so removals are recorded with Git 2.0 and
>> later.
>>
>> Signed-off-by: Jonathan Liu <net147@gmail.com>
>> ---
>>   meta/classes/buildhistory.bbclass | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
> Hmm... looks like I interpreted the Git warning incorrectly. Maybe I 
> need to look into this a bit more and perhaps change the commit message.
>
> The following appears after a build with buildhistory enabled:
> warning: You ran 'git add' with neither '-A (--all)' or 
> '--ignore-removal',
> whose behaviour will change in Git 2.0 with respect to paths you removed.
> Paths like 'test.txt' that are
> removed from your working tree are ignored with this version of Git.
>
> * 'git add --ignore-removal <pathspec>', which is the current default,
>   ignores paths you removed from your working tree.
>
> * 'git add --all <pathspec>' will let you also record the removals.
>
> Run 'git status' to check the paths you removed from your working tree.
>
> Regards,
> Jonathan
The warning appears in Git 1.8.3. The path removed was the package 
information for a kernel module after updating from 3.8.11 to 3.8.13.

Regards,
Jonathan
Paul Eggleton - May 31, 2013, 10:42 a.m.
On Friday 31 May 2013 20:29:19 Jonathan Liu wrote:
> On 31/05/2013 7:42 PM, Jonathan Liu wrote:
> > There is a behavior change with Git 2.0 where "git add ." will no
> > longer record removals by default unless -A (--all) is specified.
> > Change to "git add -A ." so removals are recorded with Git 2.0 and
> > later.
> > 
> > Signed-off-by: Jonathan Liu <net147@gmail.com>
> > ---
> > 
> >   meta/classes/buildhistory.bbclass | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Hmm... looks like I interpreted the Git warning incorrectly. Maybe I
> need to look into this a bit more and perhaps change the commit message.
> 
> The following appears after a build with buildhistory enabled:
> warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
> whose behaviour will change in Git 2.0 with respect to paths you removed.
> Paths like 'test.txt' that are
> removed from your working tree are ignored with this version of Git.
> 
> * 'git add --ignore-removal <pathspec>', which is the current default,
>    ignores paths you removed from your working tree.
> 
> * 'git add --all <pathspec>' will let you also record the removals.
> 
> Run 'git status' to check the paths you removed from your working tree.

So it seems the change is reasonable but yes perhaps the commit message should 
change to mention that it also avoids a warning with 1.8.3.

Cheers,
Paul
Paul Eggleton - May 31, 2013, 10:50 a.m.
On Friday 31 May 2013 11:42:27 Paul Eggleton wrote:
> On Friday 31 May 2013 20:29:19 Jonathan Liu wrote:
> > On 31/05/2013 7:42 PM, Jonathan Liu wrote:
> > > There is a behavior change with Git 2.0 where "git add ." will no
> > > longer record removals by default unless -A (--all) is specified.
> > > Change to "git add -A ." so removals are recorded with Git 2.0 and
> > > later.
> > > 
> > > Signed-off-by: Jonathan Liu <net147@gmail.com>
> > > ---
> > > 
> > >   meta/classes/buildhistory.bbclass | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > Hmm... looks like I interpreted the Git warning incorrectly. Maybe I
> > need to look into this a bit more and perhaps change the commit message.
> > 
> > The following appears after a build with buildhistory enabled:
> > warning: You ran 'git add' with neither '-A (--all)' or
> > '--ignore-removal',
> > whose behaviour will change in Git 2.0 with respect to paths you removed.
> > Paths like 'test.txt' that are
> > removed from your working tree are ignored with this version of Git.
> > 
> > * 'git add --ignore-removal <pathspec>', which is the current default,
> > 
> >    ignores paths you removed from your working tree.
> > 
> > * 'git add --all <pathspec>' will let you also record the removals.
> > 
> > Run 'git status' to check the paths you removed from your working tree.
> 
> So it seems the change is reasonable but yes perhaps the commit message
> should change to mention that it also avoids a warning with 1.8.3.

Hmm, I misread - looks like we should be using -A or --all right now since we 
do want deleted files to be recorded.

Cheers,
Paul
Jonathan Liu - May 31, 2013, 10:52 a.m.
On 31/05/2013 8:50 PM, Paul Eggleton wrote:
> On Friday 31 May 2013 11:42:27 Paul Eggleton wrote:
>> On Friday 31 May 2013 20:29:19 Jonathan Liu wrote:
>>> On 31/05/2013 7:42 PM, Jonathan Liu wrote:
>>>> There is a behavior change with Git 2.0 where "git add ." will no
>>>> longer record removals by default unless -A (--all) is specified.
>>>> Change to "git add -A ." so removals are recorded with Git 2.0 and
>>>> later.
>>>>
>>>> Signed-off-by: Jonathan Liu <net147@gmail.com>
>>>> ---
>>>>
>>>>    meta/classes/buildhistory.bbclass | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>> Hmm... looks like I interpreted the Git warning incorrectly. Maybe I
>>> need to look into this a bit more and perhaps change the commit message.
>>>
>>> The following appears after a build with buildhistory enabled:
>>> warning: You ran 'git add' with neither '-A (--all)' or
>>> '--ignore-removal',
>>> whose behaviour will change in Git 2.0 with respect to paths you removed.
>>> Paths like 'test.txt' that are
>>> removed from your working tree are ignored with this version of Git.
>>>
>>> * 'git add --ignore-removal <pathspec>', which is the current default,
>>>
>>>     ignores paths you removed from your working tree.
>>>
>>> * 'git add --all <pathspec>' will let you also record the removals.
>>>
>>> Run 'git status' to check the paths you removed from your working tree.
>> So it seems the change is reasonable but yes perhaps the commit message
>> should change to mention that it also avoids a warning with 1.8.3.
> Hmm, I misread - looks like we should be using -A or --all right now since we
> do want deleted files to be recorded.
>
> Cheers,
> Paul
>
Updated patch submitted.

Regards,
Jonathan

Patch

diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index d39408b..b12da4a 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -510,7 +510,7 @@  END
 		repostatus=`git status --porcelain | grep -v " metadata-revs$"`
 		HOSTNAME=`hostname 2>/dev/null || echo unknown`
 		if [ "$repostatus" != "" ] ; then
-			git add .
+			git add -A .
 			# porcelain output looks like "?? packages/foo/bar"
 			# Ensure we commit metadata-revs with the first commit
 			for entry in `echo "$repostatus" | awk '{print $2}' | awk -F/ '{print $1}' | sort | uniq` ; do