git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* how to create a diff in old file new file format (for code reviews)
@ 2010-12-14  0:07 aerosmith
  2010-12-14  9:17 ` Michael J Gruber
  0 siblings, 1 reply; 5+ messages in thread
From: aerosmith @ 2010-12-14  0:07 UTC (permalink / raw)
  To: git


Hi,

I am trying to create a diff such that the original file (entire file) is
saved something like file1.h.old and the new modified file as file1.h.new. I
have read the various options for git-diff* tools but could not find one
such utility. All I get is the removals and additions as a diff. Does anyone
know how to create one with the help the available git utils? The only
method that I can think of is to do everything manually. Any help w.r.t.
this is really appreciated. Thanks in advance.
-- 
View this message in context: http://git.661346.n2.nabble.com/how-to-create-a-diff-in-old-file-new-file-format-for-code-reviews-tp5832810p5832810.html
Sent from the git mailing list archive at Nabble.com.

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

* Re: how to create a diff in old file new file format (for code reviews)
  2010-12-14  0:07 how to create a diff in old file new file format (for code reviews) aerosmith
@ 2010-12-14  9:17 ` Michael J Gruber
  2010-12-14  9:18   ` [PATCH 1/2] git-difftool.txt: correct the description of $BASE and describe $MERGED Michael J Gruber
  2010-12-16  3:33   ` [solved] how to create a diff in old file new file format (for code reviews) Seshu Parvataneni
  0 siblings, 2 replies; 5+ messages in thread
From: Michael J Gruber @ 2010-12-14  9:17 UTC (permalink / raw)
  To: aerosmith; +Cc: git

aerosmith venit, vidit, dixit 14.12.2010 01:07:
> 
> Hi,
> 
> I am trying to create a diff such that the original file (entire file) is
> saved something like file1.h.old and the new modified file as file1.h.new. I
> have read the various options for git-diff* tools but could not find one
> such utility. All I get is the removals and additions as a diff. Does anyone
> know how to create one with the help the available git utils? The only
> method that I can think of is to do everything manually. Any help w.r.t.
> this is really appreciated. Thanks in advance.

You could script around this e.g. with an external diff-helper. The
easiest way is to reuse difftool. For example,

git difftool -y -x echo <revexpression>

will give you pairs of names of temporary files for old/new, where
<revexpression> is what you would give to "git diff" to specify what to
diff.

With the patch I'm sending in a minute, the helper you specify with "-x"
can also access the basename easily, so that you could use "-x oldnew"
with a script "oldnew" containing

#!/bin/sh
cp "$1" "$BASE".old
cp "$2" "$BASE".new

Even without the patch, you could use

git difftool -y -x 'cp "$LOCAL" "$BASE".old; cp "$REMOTE" "$BASE.new";
#' <revexpression>

(all on one line) directly. But this requires insider knowledge and may
break some day.

Cheers,
Michael

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

* [PATCH 1/2] git-difftool.txt: correct the description of $BASE and describe $MERGED
  2010-12-14  9:17 ` Michael J Gruber
@ 2010-12-14  9:18   ` Michael J Gruber
  2010-12-14  9:18     ` [PATCH 2/2] difftool: provide basename to external tools Michael J Gruber
  2010-12-16  3:33   ` [solved] how to create a diff in old file new file format (for code reviews) Seshu Parvataneni
  1 sibling, 1 reply; 5+ messages in thread
From: Michael J Gruber @ 2010-12-14  9:18 UTC (permalink / raw)
  To: git; +Cc: David Aguilar

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
---
 Documentation/git-difftool.txt |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-difftool.txt b/Documentation/git-difftool.txt
index 6fffbc7..756d95d 100644
--- a/Documentation/git-difftool.txt
+++ b/Documentation/git-difftool.txt
@@ -56,8 +56,9 @@ the configured command line will be invoked with the following
 variables available: `$LOCAL` is set to the name of the temporary
 file containing the contents of the diff pre-image and `$REMOTE`
 is set to the name of the temporary file containing the contents
-of the diff post-image.  `$BASE` is provided for compatibility
-with custom merge tool commands and has the same value as `$LOCAL`.
+of the diff post-image.  `$MERGED` is the name of the file which is
+being compared. `$BASE` is provided for compatibility
+with custom merge tool commands and has the same value as `$MERGED`.
 
 -x <command>::
 --extcmd=<command>::
-- 
1.7.3.3.739.g52f77.dirty

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

* [PATCH 2/2] difftool: provide basename to external tools
  2010-12-14  9:18   ` [PATCH 1/2] git-difftool.txt: correct the description of $BASE and describe $MERGED Michael J Gruber
@ 2010-12-14  9:18     ` Michael J Gruber
  0 siblings, 0 replies; 5+ messages in thread
From: Michael J Gruber @ 2010-12-14  9:18 UTC (permalink / raw)
  To: git; +Cc: David Aguilar

Currently, only configured diff helpers get the basename of the file
being compared. Tools specified with "git difftool -x" only get the
names of temporary files for the different versions.

Export BASE so that an external tool can read the name from the
environment. Rather than using a third argument, this avoids breaking
existing scripts which may somewhat carelessly be using "$@" rather than
"$1" "$2".

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
---
 Documentation/git-difftool.txt |    1 +
 git-difftool--helper.sh        |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/Documentation/git-difftool.txt b/Documentation/git-difftool.txt
index 756d95d..db87f1d 100644
--- a/Documentation/git-difftool.txt
+++ b/Documentation/git-difftool.txt
@@ -65,6 +65,7 @@ with custom merge tool commands and has the same value as `$MERGED`.
 	Specify a custom command for viewing diffs.
 	'git-difftool' ignores the configured defaults and runs
 	`$command $LOCAL $REMOTE` when this option is specified.
+	Additionally, `$BASE` is set in the environment.
 
 -g::
 --gui::
diff --git a/git-difftool--helper.sh b/git-difftool--helper.sh
index 524f5ea..0594bf7 100755
--- a/git-difftool--helper.sh
+++ b/git-difftool--helper.sh
@@ -49,6 +49,7 @@ launch_merge_tool () {
 	fi
 
 	if use_ext_cmd; then
+		export BASE
 		eval $GIT_DIFFTOOL_EXTCMD '"$LOCAL"' '"$REMOTE"'
 	else
 		run_merge_tool "$merge_tool"
-- 
1.7.3.3.739.g52f77.dirty

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

* Re: [solved] how to create a diff in old file new file format (for code reviews)
  2010-12-14  9:17 ` Michael J Gruber
  2010-12-14  9:18   ` [PATCH 1/2] git-difftool.txt: correct the description of $BASE and describe $MERGED Michael J Gruber
@ 2010-12-16  3:33   ` Seshu Parvataneni
  1 sibling, 0 replies; 5+ messages in thread
From: Seshu Parvataneni @ 2010-12-16  3:33 UTC (permalink / raw)
  To: Michael J Gruber; +Cc: git

Hi Michael,

Thanks very much for the reply. Your example with the difftool worked. This was what I was looking for.



--- On Tue, 12/14/10, Michael J Gruber <git@drmicha.warpmail.net> wrote:

> From: Michael J Gruber <git@drmicha.warpmail.net>
> Subject: Re: how to create a diff in old file new file format (for code reviews)
> To: "aerosmith" <parvata@rocketmail.com>
> Cc: git@vger.kernel.org
> Date: Tuesday, December 14, 2010, 1:17 AM
> aerosmith venit, vidit, dixit
> 14.12.2010 01:07:
> > 
> > Hi,
> > 
> > I am trying to create a diff such that the original
> file (entire file) is
> > saved something like file1.h.old and the new modified
> file as file1.h.new. I
> > have read the various options for git-diff* tools but
> could not find one
> > such utility. All I get is the removals and additions
> as a diff. Does anyone
> > know how to create one with the help the available git
> utils? The only
> > method that I can think of is to do everything
> manually. Any help w.r.t.
> > this is really appreciated. Thanks in advance.
> 
> You could script around this e.g. with an external
> diff-helper. The
> easiest way is to reuse difftool. For example,
> 
> git difftool -y -x echo <revexpression>
> 
> will give you pairs of names of temporary files for
> old/new, where
> <revexpression> is what you would give to "git diff"
> to specify what to
> diff.
> 
> With the patch I'm sending in a minute, the helper you
> specify with "-x"
> can also access the basename easily, so that you could use
> "-x oldnew"
> with a script "oldnew" containing
> 
> #!/bin/sh
> cp "$1" "$BASE".old
> cp "$2" "$BASE".new
> 
> Even without the patch, you could use
> 
> git difftool -y -x 'cp "$LOCAL" "$BASE".old; cp "$REMOTE"
> "$BASE.new";
> #' <revexpression>
> 
> (all on one line) directly. But this requires insider
> knowledge and may
> break some day.
> 
> Cheers,
> Michael
> --
> To unsubscribe from this list: send the line "unsubscribe
> git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


      

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

end of thread, other threads:[~2010-12-16  3:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-14  0:07 how to create a diff in old file new file format (for code reviews) aerosmith
2010-12-14  9:17 ` Michael J Gruber
2010-12-14  9:18   ` [PATCH 1/2] git-difftool.txt: correct the description of $BASE and describe $MERGED Michael J Gruber
2010-12-14  9:18     ` [PATCH 2/2] difftool: provide basename to external tools Michael J Gruber
2010-12-16  3:33   ` [solved] how to create a diff in old file new file format (for code reviews) Seshu Parvataneni

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).