Git development
 help / color / mirror / Atom feed
* Re: Problem with cg-clone
From: Linus Torvalds @ 2005-10-29 19:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Marcel Holtmann, git
In-Reply-To: <7vacgs157c.fsf@assigned-by-dhcp.cox.net>



On Sat, 29 Oct 2005, Junio C Hamano wrote:
>
> Marcel Holtmann <marcel@holtmann.org> writes:
> 
> > Previously this was working fine and since cogito hasn't changed the
> > last few days, I suspect that git is at fault here or changed something.
> > Any ideas?
> 
> I think I know what is going on.
> 
> git-init-db does not create .git/objects/[0-9a-f]{2}/
> directories anymore, but git-local-fetch has not taught to
> create them on demand.

Here's a quick hack, totally untested, of course.

More properly it should use move_temp_to_file(), but if you're about to do 
a v0.99.9 release, maybe this could be good enough.

		Linus

---

diff --git a/local-fetch.c b/local-fetch.c
index 87a93de..21f5bf8 100644
--- a/local-fetch.c
+++ b/local-fetch.c
@@ -52,9 +52,20 @@ static int setup_indices(void)
 	return 0;
 }
 
-static int copy_file(const char *source, const char *dest, const char *hex,
+static int copy_file(const char *source, char *dest, const char *hex,
 		     int warn_if_not_exists)
 {
+	char *dir = strrchr(dest, '/');
+
+	if (dir) {
+		*dir = 0;
+		if (mkdir(dir, 0777)) {
+			if (errno != EEXIST)
+				perror(dir);
+		}
+		*dir = '/';
+	}
+
 	if (use_link) {
 		if (!link(source, dest)) {
 			pull_say("link %s\n", hex);
@@ -150,7 +161,7 @@ static int fetch_file(const unsigned cha
 	static int object_name_start = -1;
 	static char filename[PATH_MAX];
 	char *hex = sha1_to_hex(sha1);
-	const char *dest_filename = sha1_file_name(sha1);
+	char *dest_filename = sha1_file_name(sha1);
 
  	if (object_name_start < 0) {
 		strcpy(filename, path); /* e.g. git.git */

^ permalink raw reply related

* Re: Problem with cg-clone
From: Junio C Hamano @ 2005-10-29 19:41 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: git
In-Reply-To: <1130605726.5396.39.camel@blade>

Marcel Holtmann <marcel@holtmann.org> writes:

> Previously this was working fine and since cogito hasn't changed the
> last few days, I suspect that git is at fault here or changed something.
> Any ideas?

I think I know what is going on.

git-init-db does not create .git/objects/[0-9a-f]{2}/
directories anymore, but git-local-fetch has not taught to
create them on demand.

^ permalink raw reply

* Problem with cg-clone
From: Marcel Holtmann @ 2005-10-29 17:08 UTC (permalink / raw)
  To: git

Hi guys,

I installed the latest git and cogito from their repositories and now
the local clone command is failing:

# cg-clone linux-2.6 test-2.6
defaulting to local storage area
Using hard links
`/data/kernel/linux-2.6/.git/HEAD' -> `.git/refs/heads/.origin-fetching'
error: Couldn't find 8a212ab6b8a4ccc6f3c3d1beba5f92655c576404: not separate or in any pack
Cannot obtain needed object 8a212ab6b8a4ccc6f3c3d1beba5f92655c576404
while processing commit 0000000000000000000000000000000000000000.
cg-fetch: objects fetch failed
cg-clone: fetch failed

Previously this was working fine and since cogito hasn't changed the
last few days, I suspect that git is at fault here or changed something.
Any ideas?

Regards

Marcel

^ permalink raw reply

* Re: [PATCH] Documentation changes to recursive option for git-diff-tree
From: Chris Shoemaker @ 2005-10-29 16:53 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7vy84c291u.fsf@assigned-by-dhcp.cox.net>

On Fri, Oct 28, 2005 at 10:20:45PM -0700, Junio C Hamano wrote:
> I already took some patches from you, but I just noticed this...
> 
> Chris Shoemaker <c.shoemaker@cox.net> writes:
> 
> > Signed-off-by: Chris Shoemaker <c.shoemaker at cox.net>
> 
> I do not particularly like this spelling out "at".

That resulted from GIT_AUTHOR_IDENT="c.shoemaker<at>cox.net".  I think
I copied that format from somewhere, but I see now that the logs
contain regular addresses.  I've changed it to just
"c.shoemaker@cox.net".

-chris

> 
> 

^ permalink raw reply

* Re: [PATCH] Minor clarifications in diffcore documentation
From: Chris Shoemaker @ 2005-10-29 16:49 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7v64rg3nuq.fsf@assigned-by-dhcp.cox.net>

On Fri, Oct 28, 2005 at 10:15:41PM -0700, Junio C Hamano wrote:
> I think with this change you wanted to say that a copy does not
> have to be a literal copy but a copy-edit.  But if that is the
> case, I suspect that the similarity index would be slightly less
> than 100.

Indeed.

-chris

^ permalink raw reply

* Re: [PATCH] Documentation changes to recursive option for git-diff-tree
From: H. Peter Anvin @ 2005-10-29 16:24 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Chris Shoemaker, git
In-Reply-To: <7vy84c291u.fsf@assigned-by-dhcp.cox.net>

Junio C Hamano wrote:
> I already took some patches from you, but I just noticed this...
> 
> Chris Shoemaker <c.shoemaker@cox.net> writes:
> 
> 
>>Signed-off-by: Chris Shoemaker <c.shoemaker at cox.net>
> 
> 
> I do not particularly like this spelling out "at".
> 

It also doesn't do any good.  Spam harvesters have caught onto this one 
a long time ago.
	
	-hpa

^ permalink raw reply

* Re: [PATCH] Use LDFLAGS instead of ALL_CFLAGS when linking.
From: H. Peter Anvin @ 2005-10-29 16:24 UTC (permalink / raw)
  To: Andreas Ericsson; +Cc: Git Mailing List
In-Reply-To: <4363250C.8030200@op5.se>

Andreas Ericsson wrote:
> The patch says it all really. It lets users specify their own linking 
> options and unclutters the build-output somewhat.
> 
> index 5b0306d..f547d45 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -360,7 +360,7 @@ git-cherry-pick: git-revert
>         $(CC) -o $*.o -c $(ALL_CFLAGS) $<
> 
>  git-%$X: %.o $(LIB_FILE)
> -       $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
> +       $(CC) -o $@ $(filter %.o,$^) $(LIBS) $(LDFLAGS)
> 

Typically $(LDFLAGS) comes before $(LIBS).  This is not insignificant, 
since some people put library seach options into LDFLAGS.

	-hpa

^ permalink raw reply

* [PATCH] Use LDFLAGS instead of ALL_CFLAGS when linking.
From: Andreas Ericsson @ 2005-10-29  7:30 UTC (permalink / raw)
  To: Git Mailing List

The patch says it all really. It lets users specify their own linking 
options and unclutters the build-output somewhat.

index 5b0306d..f547d45 100644
--- a/Makefile
+++ b/Makefile
@@ -360,7 +360,7 @@ git-cherry-pick: git-revert
         $(CC) -o $*.o -c $(ALL_CFLAGS) $<

  git-%$X: %.o $(LIB_FILE)
-       $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+       $(CC) -o $@ $(filter %.o,$^) $(LIBS) $(LDFLAGS)

  git-mailinfo$X : SIMPLE_LIB += $(LIB_4_ICONV)
  $(SIMPLE_PROGRAMS) : $(LIB_FILE)


-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

^ permalink raw reply related

* Re: [PATCH] Documentation changes to recursive option for git-diff-tree
From: Junio C Hamano @ 2005-10-29  5:20 UTC (permalink / raw)
  To: Chris Shoemaker; +Cc: git
In-Reply-To: <20051028170449.GA1446@pe.Belkin>

I already took some patches from you, but I just noticed this...

Chris Shoemaker <c.shoemaker@cox.net> writes:

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

I do not particularly like this spelling out "at".

^ permalink raw reply

* Re: [PATCH] Minor clarifications in diffcore documentation
From: Junio C Hamano @ 2005-10-29  5:15 UTC (permalink / raw)
  To: c.shoemaker; +Cc: git
In-Reply-To: <E1EVi8D-0002TT-Ik@localhost>

c.shoemaker@cox.net writes:

>  ------------------------------------------------
>  :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
>  ------------------------------------------------


I think with this change you wanted to say that a copy does not
have to be a literal copy but a copy-edit.  But if that is the
case, I suspect that the similarity index would be slightly less
than 100.

If I misunderstood the reason of this change please let me know.

All patches, including this one, look fine to me.  Thanks.

^ permalink raw reply

* Re: [PATCH] git-push.sh: Retain cuteness, add helpfulness.
From: Chris Shoemaker @ 2005-10-29  5:03 UTC (permalink / raw)
  To: git
In-Reply-To: <E1EVi9d-0002U0-0k@localhost>

I'm sorry that the patch-set I just sent didn't contain an ordering.
The order is:

0002-Minor-clarifications-in-diffcore-documentation.txt
0003-Remove-r-from-common-diff-options-documentation-in-one-more-place.txt
0004-update-usage-string-for-git-commit.sh.txt
0005-Add-usage-statement-for-git-reset.sh.txt
0006-Add-usage-statement-to-git-push.sh.txt
0007-Actually-git-reset-arguments-are-mutually-exclusive.txt
0008-git-push.sh-Factor-out-usage-statement-to-function-explain-why-rsync-can-t-push.txt
0009-git-push.sh-Retain-cuteness-add-helpfulness.txt

I tried and failed to get git-send-email to work, so I tried to roll
my own and it didn't work that well.  I'll try harder.

-chris

^ permalink raw reply

* Re: gitk shows an empty line between "Comments" and changed files
From: Pavel Roskin @ 2005-10-29  4:54 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Junio C Hamano, git
In-Reply-To: <Pine.LNX.4.64.0510282132120.3348@g5.osdl.org>

Quoting Linus Torvalds <torvalds@osdl.org>:

> On Sat, 29 Oct 2005, Pavel Roskin wrote:
> >
> > I understand the default behavior of git-diff-tree won't change, so I'll
> simply
> > strip the first line.
>
> Be careful, though. The merge case uses git-diff-tree differently, so I
> think there is no extra line for a merge.

Sure.  Thanks.

--
Regards,
Pavel Roskin

^ permalink raw reply

* Re: gitk shows an empty line between "Comments" and changed files
From: Linus Torvalds @ 2005-10-29  4:33 UTC (permalink / raw)
  To: Pavel Roskin; +Cc: Junio C Hamano, git
In-Reply-To: <20051029002357.iq88cg8gcsogk4kc@webmail.spamcop.net>



On Sat, 29 Oct 2005, Pavel Roskin wrote:
> 
> I understand the default behavior of git-diff-tree won't change, so I'll simply
> strip the first line.

Be careful, though. The merge case uses git-diff-tree differently, so I 
think there is no extra line for a merge. 

		Linus

^ permalink raw reply

* Re: gitk shows an empty line between "Comments" and changed files
From: Pavel Roskin @ 2005-10-29  4:23 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Junio C Hamano, git
In-Reply-To: <Pine.LNX.4.64.0510282003360.3348@g5.osdl.org>

Quoting Linus Torvalds <torvalds@osdl.org>:

> Note that git-patch-id will happily take a patch without the commit ID at
> the head, it just won't have a commit ID to match it up with. For such
> patches it will just spit it out with an all-zero commit-object-name.
>
> And that's very much by design.
[snip]

OK, if it's by design, I'll fix gitk only.

I understand the default behavior of git-diff-tree won't change, so I'll simply
strip the first line.

--
Regards,
Pavel Roskin

^ permalink raw reply

* [PATCH] git-push.sh: Retain cuteness, add helpfulness.
From: c.shoemaker @ 2005-10-29  4:17 UTC (permalink / raw)


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

---

 git-push.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

a20e79837771edccdfae495983a9538a76c6ada8
diff --git a/git-push.sh b/git-push.sh
--- a/git-push.sh
+++ b/git-push.sh
@@ -33,7 +33,8 @@ do
 done
 case "$#" in
 0)
-	die "Where would you want to push today?" ;;
+	echo "Where would you want to push today?"
+        usage ;;
 esac
 
 . git-parse-remote

^ permalink raw reply

* [PATCH] git-push.sh: Factor out usage statement to function; explain why rsync can't push
From: c.shoemaker @ 2005-10-29  4:17 UTC (permalink / raw)


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

---

 git-push.sh |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

cc2f6f361691771cf461df04255a2b842b264371
diff --git a/git-push.sh b/git-push.sh
--- a/git-push.sh
+++ b/git-push.sh
@@ -1,6 +1,11 @@
 #!/bin/sh
 . git-sh-setup || die "Not a git archive"
 
+usage () {
+    die "Usage: git push [--all] [--force] <repository> [<refspec>]"
+}
+
+
 # Parse out parameters and then stop at remote, so that we can
 # translate it using .git/branches information
 has_all=
@@ -18,8 +23,7 @@ do
 	--exec=*)
 		has_exec="$1" ;;
 	-*)
-		die "Usage: git push [--all] [--force] <repository> <refspec>"
-                ;;
+                usage ;;
         *)
 		set x "$@"
 		shift
@@ -41,8 +45,10 @@ esac
 shift
 
 case "$remote" in
-http://* | https://* | git://* | rsync://* )
+http://* | https://* | git://*)
 	die "Cannot use READ-ONLY transport to push to $remote" ;;
+rsync://*)
+        die "Pushing with rsync transport is deprecated" ;;
 esac
 
 set x "$remote" "$@"; shift

^ permalink raw reply

* [PATCH] Actually, git-reset arguments are mutually exclusive.
From: c.shoemaker @ 2005-10-29  4:16 UTC (permalink / raw)


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

---

 git-reset.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

7f1c4f07629a1e4328341415e9949d333c718cc8
diff --git a/git-reset.sh b/git-reset.sh
--- a/git-reset.sh
+++ b/git-reset.sh
@@ -2,7 +2,7 @@
 . git-sh-setup || die "Not a git archive"
 
 usage () {
-	die 'Usage: git reset [--mixed] [--soft] [--hard]  [<commit-ish>]'
+	die 'Usage: git reset [--mixed | --soft | --hard]  [<commit-ish>]'
 }
 
 tmp=/var/tmp/reset.$$

^ permalink raw reply

* [PATCH] Add usage statement to git-push.sh
From: c.shoemaker @ 2005-10-29  4:16 UTC (permalink / raw)


Also clarify failure to push to read-only remote.

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

---

 git-push.sh |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

c312de8ed8aad08a3cfa4b8edce025f30781a1c3
diff --git a/git-push.sh b/git-push.sh
--- a/git-push.sh
+++ b/git-push.sh
@@ -18,7 +18,8 @@ do
 	--exec=*)
 		has_exec="$1" ;;
 	-*)
-		die "Unknown parameter $1" ;;
+		die "Usage: git push [--all] [--force] <repository> <refspec>"
+                ;;
         *)
 		set x "$@"
 		shift
@@ -41,7 +42,7 @@ shift
 
 case "$remote" in
 http://* | https://* | git://* | rsync://* )
-	die "Cannot push to $remote" ;;
+	die "Cannot use READ-ONLY transport to push to $remote" ;;
 esac
 
 set x "$remote" "$@"; shift

^ permalink raw reply

* [PATCH] Add usage statement for git-reset.sh
From: c.shoemaker @ 2005-10-29  4:16 UTC (permalink / raw)


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

---

 git-reset.sh |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

6bce396534f26c05d43bfb42d057465c4e564030
diff --git a/git-reset.sh b/git-reset.sh
--- a/git-reset.sh
+++ b/git-reset.sh
@@ -1,6 +1,10 @@
 #!/bin/sh
 . git-sh-setup || die "Not a git archive"
 
+usage () {
+	die 'Usage: git reset [--mixed] [--soft] [--hard]  [<commit-ish>]'
+}
+
 tmp=/var/tmp/reset.$$
 trap 'rm -f $tmp-*' 0 1 2 3 15
 
@@ -10,6 +14,8 @@ case "$1" in
 	reset_type="$1"
 	shift
 	;;
+-*)
+        usage ;;
 esac
 
 rev=$(git-rev-parse --verify --default HEAD "$@") || exit

^ permalink raw reply

* [PATCH] update usage string for git-commit.sh
From: c.shoemaker @ 2005-10-29  4:16 UTC (permalink / raw)


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

---

 git-commit.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

5cc74c9e41a5458e25917e16f01000faae8f4b13
diff --git a/git-commit.sh b/git-commit.sh
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -6,7 +6,7 @@
 . git-sh-setup || die "Not a git archive"
 
 usage () {
-	die 'git commit [-a] [-v | --no-verify]  [-m <message>] [-F <logfile>] [(-C|-c) <commit>] [<path>...]'
+	die 'git commit [-a] [-s] [-v | --no-verify]  [-m <message> | -F <logfile> | (-C|-c) <commit>] [-e] [<path>...]'
 }
 
 all= logfile= use_commit= no_edit= log_given= log_message= verify=t signoff=

^ permalink raw reply

* [PATCH] Remove -r from common diff options documentation in one more place
From: c.shoemaker @ 2005-10-29  4:16 UTC (permalink / raw)


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

---

 Documentation/diff-options.txt |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

77e622ef1f6b29fa8b76d5c4f96200cd4d6d82ab
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -4,10 +4,6 @@
 -u::
 	Synonym for "-p".
 
--r::
-	Look recursively in subdirectories; only used by "git-diff-tree";
-	other diff commands always work recursively.
-
 -z::
 	\0 line termination on output
 

^ permalink raw reply

* [PATCH] Minor clarifications in diffcore documentation
From: c.shoemaker @ 2005-10-29  4:15 UTC (permalink / 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:
 
 ------------------------------------------------

^ permalink raw reply

* Re: gitk shows an empty line between "Comments" and changed files
From: Linus Torvalds @ 2005-10-29  3:07 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Pavel Roskin, git
In-Reply-To: <7vslul2g29.fsf@assigned-by-dhcp.cox.net>



On Fri, 28 Oct 2005, Junio C Hamano wrote:
> 
> Sorry you lost me.  I am not sure what you mean by "without
> actually doing anything" part.  The input to patch-id command in
> the above pipe is (commit-object-name patch)*.  The command
> reads such a stream, and transforms it to a (patch-id
> commit-object-name)* stream.  In other words, the input
> identifies each patch with a commit-object-name, and the command
> condenses each patch to a patch-id, and spits them out, labelled
> with commit-object-name.

Note that git-patch-id will happily take a patch without the commit ID at 
the head, it just won't have a commit ID to match it up with. For such 
patches it will just spit it out with an all-zero commit-object-name.

And that's very much by design. The point is that you can match up your 
(perhaps non-git) patches with what has been accepted. Which is why 
git-patch-id should always take non-git patches too, and then you can 
match them up by sorting by patch ID and doing "join -1" to match up 
duplicates.

So git-patch-id will work with or without the commit ID, but the commit ID 
is then later needed to figure out _which_ commit you matched up.

		Linus

^ permalink raw reply

* Re: gitk shows an empty line between "Comments" and changed files
From: Junio C Hamano @ 2005-10-29  2:49 UTC (permalink / raw)
  To: Pavel Roskin; +Cc: git
In-Reply-To: <1130539503.10531.43.camel@dv>

Pavel Roskin <proski@gnu.org> writes:

>>     git-rev-list ^$old_head $new_head |
>>     git-diff-tree -p -m --stdin --with-commit-ids |
>>     git-patch-id
>
> Sounds good.  Perhaps the commit IDs should have a prefix identifying
> them.

I do not think git-diff-tree -p output can have 40-byte
hexadecimal at the beginning of the output anywhere other than
commit object names; why clutter output?

> Another approach would be to use something slightly more elaborate than
> a pipe.  If I understand correctly, the commit ID would be already known
> from the git-rev-list output.  Passing commit IDs through patch-id
> without actually doing anything with them seems non-elegant.

Sorry you lost me.  I am not sure what you mean by "without
actually doing anything" part.  The input to patch-id command in
the above pipe is (commit-object-name patch)*.  The command
reads such a stream, and transforms it to a (patch-id
commit-object-name)* stream.  In other words, the input
identifies each patch with a commit-object-name, and the command
condenses each patch to a patch-id, and spits them out, labelled
with commit-object-name.

^ permalink raw reply

* Re: Question on GIT usage.
From: Linus Torvalds @ 2005-10-29  2:06 UTC (permalink / raw)
  To: Ben Greear; +Cc: Git Mailing List
In-Reply-To: <4362C700.6020901@candelatech.com>



On Fri, 28 Oct 2005, Ben Greear wrote:
> 
> I have a kernel GIT tree to hold my developing patches...
> 
> I need to build this kernel for 4-5 different processors (c3, p2, p4, p4-smp,
> etc).

Sounds like you just want to use a separate build directory for the 
kernel, which you can do quite independently of git (of course, not too 
many people use it, so the separate-object-directory Kbuild infrastructure 
has bugs every once in a while..)

The way it _should_ work is that you can do something like this:

	.. have a clean source-tree in ~/src/linux ..

	# set up the build tree
	cd
	mkdir build-tree
	cd ~/src/linux
	make O=~/build-tree oldconfig

	# go there and build it
	cd ~/build-tree
	make

and now you can have a build-tree for each of your different 
architectures.

Now, you _can_ certainly do the very same thing with just multiple git 
repositories, and pull between them. That has its own set of advantages 
too: you can have slight differences between the trees. Of course, if you 
know you don't want any differences between the trees, that's not an 
advantage, that's a disadvantage.

You can also have just one single real git repository, and then have that 
one checked out multiple times. Use GIT_OBJECT_DIRECTORY to share the core 
objects, and then you can have ten different git trees without duplicating 
all your objects and pack-files.

> Is there any clever way to have this one git repository keep these
> other source trees in sync so that I can do incremental builds?

If you really want them 100%, the separate build trees is the best option.

That said, a lot of _other_ projects don't do separate build trees that 
well (and as mentioned, sometimes it breaks for the kernel too), and git 
certainly could be set up to be a "poor mans separate build tree".

Right now the easiest way to do that is to just have separate repositories 
(and share at least _some_ objects by just using "git clone -l -s" to 
clone them), but it could be hacked to be more geared explicitly towards 
that..

		Linus

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox