All of lore.kernel.org
 help / color / mirror / Atom feed
From: c.shoemaker@cox.net
To: unlisted-recipients:; (no To-header on input)
Subject: [PATCH] Minor clarifications in diffcore documentation
Date: Sat, 29 Oct 2005 00:15:49 -0400	[thread overview]
Message-ID: <E1EVi8D-0002TT-Ik@localhost> (raw)

Signed-off-by: Chris Shoemaker <c.shoemaker at cox.net>

---

 Documentation/diffcore.txt |   65 ++++++++++++++++++++++++++------------------
 1 files changed, 38 insertions(+), 27 deletions(-)

805e13719e93be23d3e24e182d45056fab192a25
diff --git a/Documentation/diffcore.txt b/Documentation/diffcore.txt
--- a/Documentation/diffcore.txt
+++ b/Documentation/diffcore.txt
@@ -6,13 +6,12 @@ June 2005
 Introduction
 ------------
 
-The diff commands git-diff-index, git-diff-files, and
-git-diff-tree can be told to manipulate differences they find
-in unconventional ways before showing diff(1) output.  The
-manipulation is collectively called "diffcore transformation".
-This short note describes what they are and how to use them to
-produce diff outputs that are easier to understand than the
-conventional kind.
+The diff commands git-diff-index, git-diff-files, git-diff-tree, and
+git-diff-stages can be told to manipulate differences they find in
+unconventional ways before showing diff(1) output.  The manipulation
+is collectively called "diffcore transformation".  This short note
+describes what they are and how to use them to produce diff outputs
+that are easier to understand than the conventional kind.
 
 
 The chain of operation
@@ -29,7 +28,10 @@ files:
  - git-diff-files compares contents of the index file and the
    working directory;
 
- - git-diff-tree compares contents of two "tree" objects.
+ - git-diff-tree compares contents of two "tree" objects;
+
+ - git-diff-stages compares contents of blobs at two stages in an
+   unmerged index file.
 
 In all of these cases, the commands themselves compare
 corresponding paths in the two sets of files.  The result of
@@ -65,14 +67,23 @@ format sections of the manual for git-di
 diff-patch format.
 
 
-diffcore-pathspec
+diffcore-pathspec: For Ignoring Files Outside Our Consideration
 -----------------
 
 The first transformation in the chain is diffcore-pathspec, and
 is controlled by giving the pathname parameters to the
 git-diff-* commands on the command line.  The pathspec is used
 to limit the world diff operates in.  It removes the filepairs
-outside the specified set of pathnames.
+outside the specified set of pathnames.  E.g. If the input set 
+of filepairs included:
+
+------------------------------------------------
+:100644 100644 bcd1234... 0123456... M junkfile
+------------------------------------------------
+
+but the command invocation was "git-diff-files myfile", then the
+junkfile entry would be removed from the list because only "myfile"
+is under consideration.
 
 Implementation note.  For performance reasons, git-diff-tree
 uses the pathname parameters on the command line to cull set of
@@ -80,7 +91,7 @@ filepairs it feeds the diffcore mechanis
 use diffcore-pathspec, but the end result is the same.
 
 
-diffcore-break
+diffcore-break: For Splitting Up "Complete Rewrites"
 --------------
 
 The second transformation in the chain is diffcore-break, and is
@@ -115,7 +126,7 @@ the original is used), and can be custom
 after "-B" option (e.g. "-B75" to tell it to use 75%).
 
 
-diffcore-rename
+diffcore-rename: For Detection Renames and Copies
 ---------------
 
 This transformation is used to detect renames and copies, and is
@@ -136,16 +147,16 @@ merges these filepairs and creates:
 :100644 100644 0123456... 0123456... R100 fileX file0
 ------------------------------------------------
 
-When the "-C" option is used, the original contents of modified
-files and contents of unchanged files are considered as
-candidates of the source files in rename/copy operation, in
-addition to the deleted files.  If the input were like these
-filepairs, that talk about a modified file fileY and a newly
+When the "-C" option is used, the original contents of modified files,
+and deleted files (and also unmodified files, if the
+"\--find-copies-harder" option is used) are considered as candidates
+of the source files in rename/copy operation.  If the input were like
+these filepairs, that talk about a modified file fileY and a newly
 created file file0:
 
 ------------------------------------------------
 :100644 100644 0123456... 1234567... M fileY
-:000000 100644 0000000... 0123456... A file0
+:000000 100644 0000000... bcd3456... A file0
 ------------------------------------------------
 
 the original contents of fileY and the resulting contents of
@@ -154,14 +165,14 @@ changed to:
 
 ------------------------------------------------
 :100644 100644 0123456... 1234567... M fileY
-:100644 100644 0123456... 0123456... C100 fileY file0
+:100644 100644 0123456... bcd3456... C100 fileY file0
 ------------------------------------------------
 
 In both rename and copy detection, the same "extent of changes"
 algorithm used in diffcore-break is used to determine if two
 files are "similar enough", and can be customized to use
-similarity score different from the default 50% by giving a
-number after "-M" or "-C" option (e.g. "-M8" to tell it to use
+a similarity score different from the default of 50% by giving a
+number after the "-M" or "-C" option (e.g. "-M8" to tell it to use
 8/10 = 80%).
 
 Note.  When the "-C" option is used with `\--find-copies-harder`
@@ -173,7 +184,7 @@ git-diff-\* commands can detect copies o
 copied happened to have been modified in the same changeset.
 
 
-diffcore-merge-broken
+diffcore-merge-broken: For Putting "Complete Rewrites" Back Together
 ---------------------
 
 This transformation is used to merge filepairs broken by
@@ -215,7 +226,7 @@ prefixed with '-', followed by the entir
 version prefixed with '+'.
 
 
-diffcore-pickaxe
+diffcore-pickaxe: For Detecting Addition/Deletion of Specified String
 ----------------
 
 This transformation is used to find filepairs that represent
@@ -230,7 +241,7 @@ string appeared in this changeset".  It 
 opposite case that loses the specified string.
 
 When `\--pickaxe-all` is not in effect, diffcore-pickaxe leaves
-only such filepairs that touches the specified string in its
+only such filepairs that touch the specified string in its
 output.  When `\--pickaxe-all` is used, diffcore-pickaxe leaves all
 filepairs intact if there is such a filepair, or makes the
 output empty otherwise.  The latter behaviour is designed to
@@ -238,19 +249,19 @@ make reviewing of the changes in the con
 changeset easier.
 
 
-diffcore-order
+diffcore-order: For Sorting the Output Based on Filenames
 --------------
 
 This is used to reorder the filepairs according to the user's
 (or project's) taste, and is controlled by the -O option to the
 git-diff-* commands.
 
-This takes a text file each of whose line is a shell glob
+This takes a text file each of whose lines is a shell glob
 pattern.  Filepairs that match a glob pattern on an earlier line
 in the file are output before ones that match a later line, and
 filepairs that do not match any glob pattern are output last.
 
-As an example, typical orderfile for the core git probably
+As an example, a typical orderfile for the core git probably
 would look like this:
 
 ------------------------------------------------

             reply	other threads:[~2005-10-29  4:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-29  4:15 c.shoemaker [this message]
2005-10-29  5:15 ` [PATCH] Minor clarifications in diffcore documentation Junio C Hamano
2005-10-29 16:49   ` Chris Shoemaker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1EVi8D-0002TT-Ik@localhost \
    --to=c.shoemaker@cox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.