git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* How do I get the correct modification status after running git diff?
@ 2010-03-04 15:40 jateeq
  2010-03-04 16:11 ` jateeq
  0 siblings, 1 reply; 4+ messages in thread
From: jateeq @ 2010-03-04 15:40 UTC (permalink / raw)
  To: git


Hello,

I have added a new file to a working repository, and would like to run a
diff between the last commit and whatever is int he working tree, along with
an identification of what kind of a modification it was. Currently, I am
adding all files to the index with the -N option, and then running a git
diff --name-status. This works well for existing files that have been
modified or deleted, but fails if a file is rename or is added. Does anyone
know of the right way to do this? The commands I am using to add and diff
newly added files are as follows in the sequence shown.

Commands:
echo "this is a new file" > file1.xml
git add -N .
git diff --name-status

The output is :
M   file1.xml

I want the status to show A for the newly added file (and R for renamed
files but I don't know if that's possible).

Thank You,
Jawad.
-- 
View this message in context: http://old.nabble.com/How-do-I-get-the-correct-modification-status-after-running-git-diff--tp27782430p27782430.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: How do I get the correct modification status after running git diff?
  2010-03-04 15:40 How do I get the correct modification status after running git diff? jateeq
@ 2010-03-04 16:11 ` jateeq
  2010-03-04 16:34   ` Michael J Gruber
  2010-03-04 16:39   ` Andreas Schwab
  0 siblings, 2 replies; 4+ messages in thread
From: jateeq @ 2010-03-04 16:11 UTC (permalink / raw)
  To: git


Ok, so I think I know what I was doing wrong... i wasn't comparing the
working tree with the last commit (HEAD), although I still don't know what
exactly I was comparing the working tree with. On reading the manual a
little more carefully, I realised the command should have been: 

git diff -M --name-status HEAD

This solves the problem of newly added files, but doesn't show 'R' for
renamed files even after I ask git to detect renamed files - just shows that
the renamed file was deleted (doesn't detect that the new renamed file was
added). So I would still appreciate some input here.

Renaming flie:
mv randomfile.xml random.xml

Diffing:
git diff -M --name-status HEAD

Output:
D      randomfile.xml

Thanks, 
jawad

-- 
View this message in context: http://old.nabble.com/How-do-I-get-the-correct-modification-status-after-running-git-diff--tp27782430p27782895.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: How do I get the correct modification status after running git diff?
  2010-03-04 16:11 ` jateeq
@ 2010-03-04 16:34   ` Michael J Gruber
  2010-03-04 16:39   ` Andreas Schwab
  1 sibling, 0 replies; 4+ messages in thread
From: Michael J Gruber @ 2010-03-04 16:34 UTC (permalink / raw)
  To: jateeq; +Cc: git

jateeq venit, vidit, dixit 04.03.2010 17:11:
> 
> Ok, so I think I know what I was doing wrong... i wasn't comparing the
> working tree with the last commit (HEAD), although I still don't know what
> exactly I was comparing the working tree with. On reading the manual a

You were comparing the working tree with the index (staging area).

> little more carefully, I realised the command should have been: 
> 
> git diff -M --name-status HEAD
> 
> This solves the problem of newly added files, but doesn't show 'R' for
> renamed files even after I ask git to detect renamed files - just shows that
> the renamed file was deleted (doesn't detect that the new renamed file was
> added). So I would still appreciate some input here.
> 
> Renaming flie:
> mv randomfile.xml random.xml
> 
> Diffing:
> git diff -M --name-status HEAD
> 
> Output:
> D      randomfile.xml

git doesn't know about random.xml here, which you can change like so:

git add -N random.xml

Then git diff -M --name-status HEAD will show the rename.

Alternatively, you could have used "git mv randomfile.xml random.xml"
which would have staged that move in the index already. (More exactly:
the content changes, not the move as such)

Michael

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: How do I get the correct modification status after running git diff?
  2010-03-04 16:11 ` jateeq
  2010-03-04 16:34   ` Michael J Gruber
@ 2010-03-04 16:39   ` Andreas Schwab
  1 sibling, 0 replies; 4+ messages in thread
From: Andreas Schwab @ 2010-03-04 16:39 UTC (permalink / raw)
  To: jateeq; +Cc: git

jateeq <jawad_atiq@hotmail.com> writes:

> Renaming flie:
> mv randomfile.xml random.xml
>
> Diffing:
> git diff -M --name-status HEAD
>
> Output:
> D      randomfile.xml

random.xml is an untracked file, thus ignored.  You need to add -N it
first.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-03-04 16:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-04 15:40 How do I get the correct modification status after running git diff? jateeq
2010-03-04 16:11 ` jateeq
2010-03-04 16:34   ` Michael J Gruber
2010-03-04 16:39   ` Andreas Schwab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).