git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Errors GITtifying GCC and Binutils
@ 2006-03-22 13:33 Jan-Benedict Glaw
  2006-03-22 23:39 ` Linus Torvalds
                   ` (2 more replies)
  0 siblings, 3 replies; 43+ messages in thread
From: Jan-Benedict Glaw @ 2006-03-22 13:33 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 5811 bytes --]

Hi!

I'm currently working a lot with Binutils and GCC and wanted to import
those two projects into GIT trees, but both of them failed. If anybody
wants to have access to the half-finished GIT trees, please let me
know:

This is with GIT as of yesterday evening:

Binutils
~~~~~~~~
$ /home/jbglaw/bin/git cvsimport -v -d :pserver:anoncvs@sourceware.org:/cvs/src -C src src
[...]
Update gdb/testsuite/ChangeLog: 230971 bytes
Fetching gdb/testsuite/gdb.base/annota1.exp   v 1.1.1.2
Update gdb/testsuite/gdb.base/annota1.exp: 14656 bytes
Fetching gdb/testsuite/gdb.base/annota2.cc   v 1.1.1.3
Update gdb/testsuite/gdb.base/annota2.cc: 238 bytes
Fetching gdb/testsuite/gdb.base/annota2.exp   v 1.1.1.2
Update gdb/testsuite/gdb.base/annota2.exp: 8639 bytes
Fetching sim/mcore/ChangeLog   v 1.1.1.5
Update sim/mcore/ChangeLog: 1325 bytes
Fetching sim/mcore/interp.c   v 1.1.1.5
Update sim/mcore/interp.c: 47368 bytes
Tree ID 640f8ff80e14257bc73fa0c3344504c4db960655
Parent ID ac9471abd876476724dc0205272b0565c18b1a7c
Committed patch 102 (SNAPSHOT 1999-05-25 18:00:33)
Commit ID 5847cc095ce0445eb6bf9df1203ccdad35f501fe
Created tag 'gdb-1999-05-25' on 'SNAPSHOT'
Switching from SNAPSHOT to origin
Fetching bfd/ChangeLog   v 1.19
Update bfd/ChangeLog: 118751 bytes
Fetching bfd/elf32-arm.h   v 1.4
Update bfd/elf32-arm.h: 90491 bytes
Tree ID 5100b5c49ef78e1027b476f4dbdebeca0b01f113
Parent ID 8d35c43246f8d9693203ef6a87aabf378593bceb
Committed patch 103 (origin 1999-05-26 08:27:37)
Commit ID bb18137d43506ccc7f78da63b18d9f6b6749264d
Fetching include/opcode/ChangeLog   v 1.4
Update include/opcode/ChangeLog: 63395 bytes
Fetching include/opcode/hppa.h   v 1.2
Update include/opcode/hppa.h: 23271 bytes
Tree ID 7b211af5cb99cbe307d02d72c1e144f3c1aac7e9
Parent ID bb18137d43506ccc7f78da63b18d9f6b6749264d
Committed patch 104 (origin 1999-05-26 16:04:10)
Commit ID 4da3ef4d311fc62a1a0bba8b680595ad824a7e2c
Fetching ld/ChangeLog   v 1.11
Update ld/ChangeLog: 328968 bytes
Fetching ld/emulparams/armelf_oabi.sh   v 1.2
Update ld/emulparams/armelf_oabi.sh: 585 bytes
Tree ID fcc05a0f9c66693e5b26a5fb4821f6bbeadf4c31
Parent ID 4da3ef4d311fc62a1a0bba8b680595ad824a7e2c
Committed patch 105 (origin 1999-05-26 17:23:31)
Commit ID ddaaceeede7f9bb938188c4f72ddce420d08efad
Switching from origin to gdb-4_18-branch
usage: git-read-tree (<sha> | -m [--aggressive] [-u | -i] <sha1> [<sha2> [<sha3>]])
read-tree failed: 33024

$ /home/jbglaw/bin/git cvsimport -v -d :pserver:anoncvs@sourceware.org:/cvs/src -C src src
usage: git-read-tree (<sha> | -m [--aggressive] [-u | -i] <sha1> [<sha2> [<sha3>]])
read-tree failed: 33024




GCC
~~~
$ /home/jbglaw/bin/git svnimport -C gcc -v svn://gcc.gnu.org/svn/gcc
[...]
... 3930 trunk/gcc/combine.c ...
Tree ID 2af6a2f6e28835fec0aaf60d278e356d12d9ae5f
Merge parent branch: 587bbd00ea5b0f8c18d8ca58bbfcaa4b6b62ff92
Committed change 3930:/ 1993-03-30 20:37:29)
Commit ID 3ed4cebd349a2c98c7a06d6333b014bd4fe23d6d
Writing to refs/heads/origin
DONE: 3930 origin 3ed4cebd349a2c98c7a06d6333b014bd4fe23d6d
... 3931 trunk/gcc/config/mips/mips.h ...
Tree ID f173f836adf4d8efb42c180d7cd5a786a3acf361
Merge parent branch: 3ed4cebd349a2c98c7a06d6333b014bd4fe23d6d
Committed change 3931:/ 1993-03-30 21:50:50)
Commit ID 7c132f1464d27bd8198c51913b17a0534376e3e6
Writing to refs/heads/origin
DONE: 3931 origin 7c132f1464d27bd8198c51913b17a0534376e3e6
... 3932 trunk/gcc/config/pa/pa.md ...
Tree ID a88f5523f982dbac1334b78c47fd56a685640a46
Merge parent branch: 7c132f1464d27bd8198c51913b17a0534376e3e6
Committed change 3932:/ 1993-03-30 22:02:05)
Commit ID 9a8ddfa77f6735c8ba87ab98bc3ac7b056a09d96
Writing to refs/heads/origin
DONE: 3932 origin 9a8ddfa77f6735c8ba87ab98bc3ac7b056a09d96
... 3933 trunk/gcc/real.c ...
Tree ID 7d25a64013b301e0e575587a5adfd8b540b4c5a7
Merge parent branch: 9a8ddfa77f6735c8ba87ab98bc3ac7b056a09d96
Committed change 3933:/ 1993-03-31 05:30:24)
Commit ID 70cc7d27f3a4e5117df4e4d2f6e5a2aa4c4a89a6
Writing to refs/heads/origin
DONE: 3933 origin 70cc7d27f3a4e5117df4e4d2f6e5a2aa4c4a89a6
... 3934 trunk/gcc/real.h ...
Tree ID fce52e724f0f1543abd5bd430a11822c3977e803
Merge parent branch: 70cc7d27f3a4e5117df4e4d2f6e5a2aa4c4a89a6
Committed change 3934:/ 1993-03-31 05:39:37)
Commit ID f8dad6fb5af69122823800ca974e16d4f09906c2
Writing to refs/heads/origin
DONE: 3934 origin f8dad6fb5af69122823800ca974e16d4f09906c2
... 3935 trunk/gcc/Makefile.in ...
Tree ID 7c2cd41d922407ab1df47954fb82964ad7511328
Merge parent branch: f8dad6fb5af69122823800ca974e16d4f09906c2
Committed change 3935:/ 1993-03-31 05:41:37)
Commit ID eb99aa0ad37564c2071fe4b2f539fe072a72ad4c
Writing to refs/heads/origin
DONE: 3935 origin eb99aa0ad37564c2071fe4b2f539fe072a72ad4c
... 3936 trunk/gcc/c-lex.c ...
Tree ID 90547e4ef900e45f4354aa036f216a3bff93c8dd
Merge parent branch: eb99aa0ad37564c2071fe4b2f539fe072a72ad4c
Committed change 3936:/ 1993-03-31 05:44:03)
Commit ID ceff85145f8671fb2a9d826a761cedc2a507bd1e
Writing to refs/heads/origin
DONE: 3936 origin ceff85145f8671fb2a9d826a761cedc2a507bd1e
... 3937 trunk/gcc/final.c ...
Can't fork at /home/jbglaw/bin/git-svnimport line 379.

$ /home/jbglaw/bin/git svnimport -C gcc -v svn://gcc.gnu.org/svn/gcc
Use of uninitialized value in system at /home/jbglaw/bin/git-svnimport line 295.
usage: git-read-tree (<sha> | -m [--aggressive] [-u | -i] <sha1> [<sha2> [<sha3>]])
read-tree failed: 33024



MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-22 13:33 Errors GITtifying GCC and Binutils Jan-Benedict Glaw
@ 2006-03-22 23:39 ` Linus Torvalds
  2006-03-23  0:12   ` Linus Torvalds
  2006-03-24 12:44   ` Ralf Baechle
  2006-03-24 18:25 ` Jan-Benedict Glaw
  2006-03-25  9:10 ` Errors GITtifying GCC and Binutils James Cloos
  2 siblings, 2 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-22 23:39 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git



On Wed, 22 Mar 2006, Jan-Benedict Glaw wrote:
> 
> I'm currently working a lot with Binutils and GCC and wanted to import
> those two projects into GIT trees, but both of them failed. If anybody
> wants to have access to the half-finished GIT trees, please let me
> know:

Well, I can re-create your error..

> Switching from origin to gdb-4_18-branch
> usage: git-read-tree (<sha> | -m [--aggressive] [-u | -i] <sha1> [<sha2> [<sha3>]])
> read-tree failed: 33024

That's a horrible error message, and the reason for it is that no 
"gdb-4_18-branch" exists.

There's a _tag_ called "gdb-4_18", and there's a branch called "GDB_4_18", 
and they actually point to two _different_ commits (both "Initial creation 
of sourceware repository"). The commits actually have identical trees, but 
they're different, because they have different times - by 50 seconds. 

Gaah.

Looking at cvsps output (from

	cvsps --norc -u -A -v -d --cvsdirect
		--root :pserver:anoncvs@sourceware.org:/cvs/src
		src > cvsps.out 2> cvsps.err

it's "PatchSet 104" (well, for me it is, I have a hacked cvsps, so it 
might not be that for you), which creates the "gdb-4_18-branch", but it 
appears that cvsps hasn't actually figured out any "Ancestor branch" for 
that commit.

What a crock.

Anyway, it's clearly a cvsps bug (mentioning a new branch without the 
_source_ of that branch). Equally clearly, "git cvsimport" is being an ass 
about then failing so totally on it.

I'll try to take a look at why cvsps does that.

		Linus

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-22 23:39 ` Linus Torvalds
@ 2006-03-23  0:12   ` Linus Torvalds
  2006-03-23  1:28     ` Linus Torvalds
  2006-03-23  6:09     ` H. Peter Anvin
  2006-03-24 12:44   ` Ralf Baechle
  1 sibling, 2 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23  0:12 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git



On Wed, 22 Mar 2006, Linus Torvalds wrote:
> 
> Looking at cvsps output (from
> 
> 	cvsps --norc -u -A -v -d --cvsdirect
> 		--root :pserver:anoncvs@sourceware.org:/cvs/src
> 		src > cvsps.out 2> cvsps.err
> 
> it's "PatchSet 104" (well, for me it is, I have a hacked cvsps, so it 
> might not be that for you), which creates the "gdb-4_18-branch", but it 
> appears that cvsps hasn't actually figured out any "Ancestor branch" for 
> that commit.

It _seems_ that the reason for that is that cvsps considers a revision 
number of 1.1.1.1 to have a "dot depth" of 0, for some really strange 
reason (it's a total special case).

And that will currently not compare as a "greater" dot depth than not 
having any revision number at all for the ancestor, so such a revision 
will never be considered an ancestor branch.

This one-liner to cvsps.c seems to make sure we have an ancestor branch 
for that "gdb-4.18-branch" branch, at least according to the cvsps output. 
I'm re-running "git cvsimport" with this cvsps to see if it gets us past 
that one point, but I need to go pick up Patricia from school, so I won't 
have time to actually check the result. If somebody wants to play with 
this, go wild.

(The point of this patch is to make sure that if the head PatchSet doesn't 
have an ancestor, we'll consider _any_ valid ancestor to be better than 
that).

		Linus

---
diff --git a/cvsps.c b/cvsps.c
--- a/cvsps.c
+++ b/cvsps.c
@@ -2599,7 +2599,7 @@ static void determine_branch_ancestor(Pa
 	 * note: rev is the pre-commit revision, not the post-commit
 	 */
 	if (!head_ps->ancestor_branch)
-	    d1 = 0;
+	    d1 = -1;
 	else if (strcmp(ps->branch, rev->branch) == 0)
 	    continue;
 	else if (strcmp(head_ps->ancestor_branch, "HEAD") == 0)

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23  0:12   ` Linus Torvalds
@ 2006-03-23  1:28     ` Linus Torvalds
  2006-03-23 20:03       ` Jan-Benedict Glaw
  2006-03-23  6:09     ` H. Peter Anvin
  1 sibling, 1 reply; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23  1:28 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git



On Wed, 22 Mar 2006, Linus Torvalds wrote:
> 
> This one-liner to cvsps.c seems to make sure we have an ancestor branch 
> for that "gdb-4.18-branch" branch, at least according to the cvsps output. 

The "git cvsimport" is still running, but at least it seems to be happily 
running further past the point it broke earlier.

Will send the patch over to David Mansfield.

		Linus

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23  0:12   ` Linus Torvalds
  2006-03-23  1:28     ` Linus Torvalds
@ 2006-03-23  6:09     ` H. Peter Anvin
  2006-03-23 15:45       ` Keith Packard
  1 sibling, 1 reply; 43+ messages in thread
From: H. Peter Anvin @ 2006-03-23  6:09 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Jan-Benedict Glaw, git

Linus Torvalds wrote:
> 
> It _seems_ that the reason for that is that cvsps considers a revision 
> number of 1.1.1.1 to have a "dot depth" of 0, for some really strange 
> reason (it's a total special case).
> 

Probably because in 99% of all cases, revision 1.1.1.1 is the result of 
a "cvs import".

	-hpa

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23  6:09     ` H. Peter Anvin
@ 2006-03-23 15:45       ` Keith Packard
  2006-03-23 16:01         ` Linus Torvalds
  0 siblings, 1 reply; 43+ messages in thread
From: Keith Packard @ 2006-03-23 15:45 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: keithp, Linus Torvalds, Jan-Benedict Glaw, git

[-- Attachment #1: Type: text/plain, Size: 760 bytes --]

On Wed, 2006-03-22 at 22:09 -0800, H. Peter Anvin wrote:
> Linus Torvalds wrote:
> > 
> > It _seems_ that the reason for that is that cvsps considers a revision 
> > number of 1.1.1.1 to have a "dot depth" of 0, for some really strange 
> > reason (it's a total special case).
> > 
> 
> Probably because in 99% of all cases, revision 1.1.1.1 is the result of 
> a "cvs import".

All odd branches are imports. Internal branches are even. So, 1.1.3.1
would be the first import along the second vendor branch from the trunk.

Note that vendor branches are always made from the first revision along
a branch, independent of when they occur, so you'll get 1.1.3.1 even if
the head revision along the trunk is 1.246.

-- 
keith.packard@intel.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 15:45       ` Keith Packard
@ 2006-03-23 16:01         ` Linus Torvalds
       [not found]           ` <20060323131200.02c535b8.seanlkml@sympatico.ca>
  2006-03-23 21:02           ` Errors GITtifying GCC and Binutils Ryan Anderson
  0 siblings, 2 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23 16:01 UTC (permalink / raw)
  To: Keith Packard; +Cc: H. Peter Anvin, Jan-Benedict Glaw, git



On Thu, 23 Mar 2006, Keith Packard wrote:
> 
> Note that vendor branches are always made from the first revision along
> a branch, independent of when they occur, so you'll get 1.1.3.1 even if
> the head revision along the trunk is 1.246.

I have to say, that one thing I've learnt during this whole git thing is 
that other SCM's are DAMN CONFUSED.

I used to think that git was potentially hard to understand. Not so. git 
is an absolute paragon of logic and easy-to-understand concepts.

Compared to SVN (can anybody sat "trunk/branch/tag confusion") and CVS, 
git is not only a hell of a lot more capable, it's just more logical.

We will hereby start scouring the net for people who say git is hard to 
understand and use, and just kill them. They clearly are just polluting 
the gene pool.

		Linus

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

* Re: Errors GITtifying GCC and Binutils
       [not found]           ` <20060323131200.02c535b8.seanlkml@sympatico.ca>
@ 2006-03-23 18:12             ` sean
  2006-03-23 20:38               ` Linus Torvalds
  0 siblings, 1 reply; 43+ messages in thread
From: sean @ 2006-03-23 18:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: keithp, hpa, jbglaw, git

On Thu, 23 Mar 2006 08:01:14 -0800 (PST)
Linus Torvalds <torvalds@osdl.org> wrote:

> I have to say, that one thing I've learnt during this whole git thing is 
> that other SCM's are DAMN CONFUSED.
> 
> I used to think that git was potentially hard to understand. Not so. git 
> is an absolute paragon of logic and easy-to-understand concepts.
> 
> Compared to SVN (can anybody sat "trunk/branch/tag confusion") and CVS, 
> git is not only a hell of a lot more capable, it's just more logical.
> 
> We will hereby start scouring the net for people who say git is hard to 
> understand and use, and just kill them. They clearly are just polluting 
> the gene pool.

lol, that sounds like a really good plan.  Perhaps as a two pronged effort
its worth changing the notion that git is primarily "plumbing".   Adding
some of the nice features of cogito and other "porcelains" into the core
git might go a ways toward converting the few naysayers we don't kill.

Sean

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23  1:28     ` Linus Torvalds
@ 2006-03-23 20:03       ` Jan-Benedict Glaw
  2006-03-23 20:42         ` Linus Torvalds
  2006-03-24  0:39         ` Chris Shoemaker
  0 siblings, 2 replies; 43+ messages in thread
From: Jan-Benedict Glaw @ 2006-03-23 20:03 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 2679 bytes --]

On Wed, 2006-03-22 17:28:23 -0800, Linus Torvalds <torvalds@osdl.org> wrote:
> On Wed, 22 Mar 2006, Linus Torvalds wrote:
> > This one-liner to cvsps.c seems to make sure we have an ancestor branch 
> > for that "gdb-4.18-branch" branch, at least according to the cvsps output. 
> 
> The "git cvsimport" is still running, but at least it seems to be happily 
> running further past the point it broke earlier.

I've started it once again, too, with the one-liner added to Debian
unstable's version of cvsps:

Fetching gas/ChangeLog   v 1.479
Update gas/ChangeLog: 250329 bytes
Tree ID a6b48ebac02a4158d37bab17c54c667223ecd971
Parent ID 4cabd2962031fd7ec6416580d84fb30a304969f3
Committed patch 3742 (origin 2000-07-29 03:23:31)
Commit ID 1910c20a44455db916a5c040663716a7389219bc
Fetching winsup/cygwin/fhandler.h   v 1.16
Update winsup/cygwin/fhandler.h: 25992 bytes
Fetching winsup/cygwin/include/cygwin/cygwin_dll.h   v 1.2
Update winsup/cygwin/include/cygwin/cygwin_dll.h: 3050 bytes
Fetching winsup/cygwin/lib/cygwin_crt0.c   v 1.5
Update winsup/cygwin/lib/cygwin_crt0.c: 926 bytes
Tree ID 0c2c7e9d0846e5f42b0bebad8b27ce439ddefb73
Parent ID 1910c20a44455db916a5c040663716a7389219bc
Committed patch 3743 (origin 2000-07-29 04:19:24)
Commit ID a15aac16f12061fbfef1be8f21b80a5076c8d605
Fetching winsup/cygwin/ChangeLog   v 1.235
Update winsup/cygwin/ChangeLog: 75391 bytes
Fetching winsup/cygwin/dtable.cc   v 1.11
Update winsup/cygwin/dtable.cc: 14399 bytes
Fetching winsup/cygwin/environ.cc   v 1.17
Update winsup/cygwin/environ.cc: 17190 bytes
Fetching winsup/cygwin/winsup.h   v 1.22
Update winsup/cygwin/winsup.h: 15828 bytes
Tree ID f777977c2b138952bc5a9bc431eec3de99a5f7db
Parent ID a15aac16f12061fbfef1be8f21b80a5076c8d605
Committed patch 3744 (origin 2000-07-29 16:01:23)
Commit ID 38b0ed94ef1c402b7b78ac6cad6c89ce189cd223
Switching from origin to #CVSPS_NO_BRANCH
usage: git-read-tree (<sha> | -m [--aggressive] [-u | -i] <sha1> [<sha2> [<sha3>]])
read-tree failed: 33024

It seems there's a patch like
http://www.gelato.unsw.edu.au/archives/git/0602/16278.html is missing?
...or we need a better cvsps.  Shall I add it and try again / try to
continue, or give up on it for now?  Though it would be nice to have
these two large and important source trees under GIT control :-)

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 18:12             ` sean
@ 2006-03-23 20:38               ` Linus Torvalds
  2006-03-23 20:48                 ` Shawn Pearce
                                   ` (3 more replies)
  0 siblings, 4 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23 20:38 UTC (permalink / raw)
  To: sean; +Cc: keithp, hpa, jbglaw, git



On Thu, 23 Mar 2006, sean wrote:
> 
> lol, that sounds like a really good plan.  Perhaps as a two pronged effort
> its worth changing the notion that git is primarily "plumbing".   Adding
> some of the nice features of cogito and other "porcelains" into the core
> git might go a ways toward converting the few naysayers we don't kill.

Actually, as far as I can tell, git already has a hell of a lot more 
porcelain than pretty much any non-IDE type traditional SCM. Certainly 
more than CVS.

Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
SCM" environments, ie just basic SVN or CVS. What are we missing in that 
department? (The only thing I can think of is a diff colorizer, which some 
prople seem to really want).

		Linus

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:03       ` Jan-Benedict Glaw
@ 2006-03-23 20:42         ` Linus Torvalds
  2006-03-24  0:39         ` Chris Shoemaker
  1 sibling, 0 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23 20:42 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git



On Thu, 23 Mar 2006, Jan-Benedict Glaw wrote:
>
> Switching from origin to #CVSPS_NO_BRANCH

Ahh. I had some other changes to my cvsps, so I never saw this. I just 
turned the #CVSPS_NO_BRANCH thing into HEAD.

		Linus

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:38               ` Linus Torvalds
@ 2006-03-23 20:48                 ` Shawn Pearce
  2006-03-23 21:11                   ` Ryan Anderson
                                     ` (2 more replies)
  2006-03-23 21:31                 ` David S. Miller
                                   ` (2 subsequent siblings)
  3 siblings, 3 replies; 43+ messages in thread
From: Shawn Pearce @ 2006-03-23 20:48 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: sean, keithp, hpa, jbglaw, git

Linus Torvalds <torvalds@osdl.org> wrote:
> 
> On Thu, 23 Mar 2006, sean wrote:
> > 
> > lol, that sounds like a really good plan.  Perhaps as a two pronged effort
> > its worth changing the notion that git is primarily "plumbing".   Adding
> > some of the nice features of cogito and other "porcelains" into the core
> > git might go a ways toward converting the few naysayers we don't kill.
> 
> Actually, as far as I can tell, git already has a hell of a lot more 
> porcelain than pretty much any non-IDE type traditional SCM. Certainly 
> more than CVS.
> 
> Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
> SCM" environments, ie just basic SVN or CVS. What are we missing in that 
> department? (The only thing I can think of is a diff colorizer, which some 
> prople seem to really want).

A pretty native point-and-click Windows GUI so Windows users can
use GIT without knowing how to actually use their computer.  :-)

I'm not trying to bash Windows users.  I'm just saying that there's
definately a large user base for SCMs such as CVS who just want
to check in the latest version of a file they have to maintain.
Many of these people are afraid of a command prompt.  Asking them
to install Cygwin just to check in a file is a difficult challenge.

And even if a user is perfectly comfortable with a command prompt
and could write one-line scripts faster than anyone else, sometimes
users just prefer a GUI interface.

qgit probably comes close in this department but hasn't been packaged
up into a pretty Windows installer.  :-)


But your definately right; once the blame/annotate war settles out
GIT will have pretty much everything one might need - except a good
distributed bug/issue tracking type system.  :-)

-- 
Shawn.

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 16:01         ` Linus Torvalds
       [not found]           ` <20060323131200.02c535b8.seanlkml@sympatico.ca>
@ 2006-03-23 21:02           ` Ryan Anderson
  2006-03-23 21:39             ` Linus Torvalds
  2006-03-23 23:51             ` Junio C Hamano
  1 sibling, 2 replies; 43+ messages in thread
From: Ryan Anderson @ 2006-03-23 21:02 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Keith Packard, H. Peter Anvin, Jan-Benedict Glaw, git

On Thu, Mar 23, 2006 at 08:01:14AM -0800, Linus Torvalds wrote:
> On Thu, 23 Mar 2006, Keith Packard wrote:
> > 
> > Note that vendor branches are always made from the first revision along
> > a branch, independent of when they occur, so you'll get 1.1.3.1 even if
> > the head revision along the trunk is 1.246.
> 
> I have to say, that one thing I've learnt during this whole git thing is 
> that other SCM's are DAMN CONFUSED.
> 
> I used to think that git was potentially hard to understand. Not so. git 
> is an absolute paragon of logic and easy-to-understand concepts.
> 
> Compared to SVN (can anybody sat "trunk/branch/tag confusion") and CVS, 
> git is not only a hell of a lot more capable, it's just more logical.

This might be somewhat controversial, and I haven't done any research to
confirm my impression, but you might be just seeing the symptoms of
different ways of looking at the problem.

Scott Collins (QT evangelist, incredibly smart guy) commented to me
sometime over the summer, that every new SCM was born out of someone's
desire to implement a new merge algorithm.  While I think that's too
simple, I think there have been an awful lot of academic SCMs out there.

Git has taken a very pragmatic approach, in that the goal has been "What
is the smallest number of concepts we can create that let us solve the
problem, even if we occassionally have to make some tradeoffs?"
(Thinking of rename detection there, mostly.)

So, really, I guess the comment I'm trying to make here is that Occam
was right.

-- 

Ryan Anderson
  sometimes Pug Majere

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:48                 ` Shawn Pearce
@ 2006-03-23 21:11                   ` Ryan Anderson
  2006-03-24  0:15                     ` Junio C Hamano
  2006-03-23 23:30                   ` Junio C Hamano
  2006-03-24 11:11                   ` Mark Wooding
  2 siblings, 1 reply; 43+ messages in thread
From: Ryan Anderson @ 2006-03-23 21:11 UTC (permalink / raw)
  To: Shawn Pearce; +Cc: git, Junio C Hamano

On Thu, Mar 23, 2006 at 03:48:25PM -0500, Shawn Pearce wrote:
> 
> But your definately right; once the blame/annotate war settles out
> GIT will have pretty much everything one might need - except a good
> distributed bug/issue tracking type system.  :-)

Junio, where do we stand on this?

I've been a bit busy to finish the bug fixing I need to do on
annotate[1], and frankly, I have no strong feelings either way.

I must admit, I find annotate easier to read, but I wrote it, so I'm a
bit biased.  Maybe it is just that in C you sometimes get lost in the
details.

1 - The only bug I'm aware of, at the moment, is the fact that merges
sometimes get assigned poorly, which I have a plan to fix, I just
haven't had the time to sort it out yet.

-- 

Ryan Anderson
  sometimes Pug Majere

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:38               ` Linus Torvalds
  2006-03-23 20:48                 ` Shawn Pearce
@ 2006-03-23 21:31                 ` David S. Miller
  2006-03-23 21:48                   ` Linus Torvalds
  2006-03-23 22:36                   ` Timo Hirvonen
       [not found]                 ` <20060323170515.3612dc61.seanlkml@sympatico.ca>
  2006-03-24 12:32                 ` Ralf Baechle
  3 siblings, 2 replies; 43+ messages in thread
From: David S. Miller @ 2006-03-23 21:31 UTC (permalink / raw)
  To: torvalds; +Cc: seanlkml, keithp, hpa, jbglaw, git

From: Linus Torvalds <torvalds@osdl.org>
Date: Thu, 23 Mar 2006 12:38:33 -0800 (PST)

> Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
> SCM" environments, ie just basic SVN or CVS. What are we missing in that 
> department? (The only thing I can think of is a diff colorizer, which some 
> prople seem to really want).

gitk does color the diffs already, or are we talking about some
"side-by-side" multiple window thing showing "before" on the
left and "after" on the right?

Given that the gitk author has also written diff colorizers in the
past, I don't see providing this as being much of a problem :)

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 21:02           ` Errors GITtifying GCC and Binutils Ryan Anderson
@ 2006-03-23 21:39             ` Linus Torvalds
  2006-03-23 23:51             ` Junio C Hamano
  1 sibling, 0 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23 21:39 UTC (permalink / raw)
  To: Ryan Anderson; +Cc: Keith Packard, H. Peter Anvin, Jan-Benedict Glaw, git



On Thu, 23 Mar 2006, Ryan Anderson wrote:
> 
> Scott Collins (QT evangelist, incredibly smart guy) commented to me
> sometime over the summer, that every new SCM was born out of someone's
> desire to implement a new merge algorithm.  While I think that's too
> simple, I think there have been an awful lot of academic SCMs out there.

The exact details are lost in antiquity, but I'm sure one of the defining 
moments in time for CVS was Dick Grune saying "Merges? We don't need no 
steenking merges! We'll just make branching difficult! Yeah, that's it! 
Mwhahahhahhaaaa!".

The rest is history.

[ Really, the sad part is that you're probably right even when it comes to 
  CVS. The #1 feature of CVS as defined by Brian Berliner in his CVS II 
  paper was 'Concurrent access and conflict-resolution algorithms to 
  guarantee that source changes are not "lost"'. ]

			Linus

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 21:31                 ` David S. Miller
@ 2006-03-23 21:48                   ` Linus Torvalds
  2006-03-23 22:36                   ` Timo Hirvonen
  1 sibling, 0 replies; 43+ messages in thread
From: Linus Torvalds @ 2006-03-23 21:48 UTC (permalink / raw)
  To: David S. Miller; +Cc: seanlkml, keithp, hpa, jbglaw, git



On Thu, 23 Mar 2006, David S. Miller wrote:
> 
> > Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
> > SCM" environments, ie just basic SVN or CVS. What are we missing in that 
> > department? (The only thing I can think of is a diff colorizer, which some 
> > prople seem to really want).
> 
> gitk does color the diffs already, or are we talking about some
> "side-by-side" multiple window thing showing "before" on the
> left and "after" on the right?

I think we're just talking about 

	git diff | git colorize

like this (and then integrating it a bit better).

		Linus

--- colorize.c ---
#include "cache.h"

#define BUFSIZE 128

#define NORMAL	""
#define BOLD	"\033[1m"
#define UL	"\033[4m"

#define GRAYBG	"\033[47m"

#define BLACK	"\033[30m"
#define RED	"\033[31m"
#define GREEN	"\033[32m"
#define YELLOW	"\033[33m"
#define BLUE	"\033[34m"
#define MAGENTA	"\033[35m"
#define CYAN	"\033[36m"
#define WHITE	"\033[37m"
#define RESET	"\033[m"

enum linetype {
	UNKNOWN,
	HEAD,
	FRAGHEAD,
	ADD,
	REMOVE,
	UNCHANGED,
};

static const char *tput[][2] = {
	[UNKNOWN] =	{ NORMAL, NORMAL "\n" },
	[HEAD] =	{ BOLD,   RESET "\n" },
	[FRAGHEAD] =	{ GRAYBG, RESET "\n" },
	[ADD] =		{ GREEN,  RESET "\n" },
	[REMOVE] =	{ RED,    RESET "\n" },
	[UNCHANGED] =	{ NORMAL, NORMAL "\n" },
};

static void colorize(FILE *in, FILE *out)
{
	char buffer[BUFSIZE];
	const char *end = NULL;
	int in_fragment = 0;

	while (fgets(buffer, BUFSIZE, in)) {
		int type = UNKNOWN;
		int eoln, len = strlen(buffer);
		const char *begin;

		if (!len)
			break;
		eoln = buffer[len-1] == '\n';
		if (eoln)
			buffer[--len] = 0;

		/* Did we have a partial line from before? */
		if (end) {
			fputs(buffer, out);
			if (!eoln)
				continue;
			fputs(end, out);
			end = NULL;
			continue;
		}

		if (in_fragment) {
			in_fragment--;
			switch (buffer[0]) {
			case '+':
				type = ADD;
				break;
			case '-':
				type = REMOVE;
				break;
			case ' ':
				type = UNCHANGED;
				break;
			case '\\':
				type = UNCHANGED;
				break;
			default:
				in_fragment = 0;
			}
		}
		if (type == UNKNOWN) {
			if (!strncmp(buffer, "@@ ", 3)) {
				type = FRAGHEAD;
				/* We should parse the line numbers */
				in_fragment = INT_MAX;
			}
			if (!strncmp(buffer, "+++ ", 4) ||
			    !strncmp(buffer, "--- ", 4) ||
			    !strncmp(buffer, "diff ", 5))
				type = HEAD;
		}

		begin = tput[type][0];
		end = tput[type][1];
		fputs(begin, out);
		fputs(buffer, out);
		if (!eoln)
			continue;
		fputs(end, out);
		end = NULL;
	}
	if (end)
		fputs(end, out);
}

int main(int argc, char **argv)
{
	colorize(stdin, stdout);
	return 0;
}

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

* Re: Errors GITtifying GCC and Binutils
       [not found]                 ` <20060323170515.3612dc61.seanlkml@sympatico.ca>
@ 2006-03-23 22:05                   ` sean
  0 siblings, 0 replies; 43+ messages in thread
From: sean @ 2006-03-23 22:05 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: keithp, hpa, jbglaw, git

On Thu, 23 Mar 2006 12:38:33 -0800 (PST)
Linus Torvalds <torvalds@osdl.org> wrote:

> Actually, as far as I can tell, git already has a hell of a lot more 
> porcelain than pretty much any non-IDE type traditional SCM. Certainly 
> more than CVS.
> 
> Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
> SCM" environments, ie just basic SVN or CVS. What are we missing in that 
> department? (The only thing I can think of is a diff colorizer, which some 
> prople seem to really want).

Yeah, i was thinking more along the lines of the way cogito handles
commit message editing for example, where you can change which files
are committed by editing the file list in place.  Maybe the colorized
git log viewer would be worth pulling into core as well, etc.

It's been a long time since i've looked at cogito but perhaps there
are other things in it that have proven useful and deserve to 
be pushed into core.

I guess my original comment was made because I always cringe when
i see git described as "plumbing" and only having porcelain-"ish"
commands included.

Sean

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 21:31                 ` David S. Miller
  2006-03-23 21:48                   ` Linus Torvalds
@ 2006-03-23 22:36                   ` Timo Hirvonen
  1 sibling, 0 replies; 43+ messages in thread
From: Timo Hirvonen @ 2006-03-23 22:36 UTC (permalink / raw)
  To: git; +Cc: torvalds, seanlkml, keithp, hpa, jbglaw, git

On Thu, 23 Mar 2006 13:31:20 -0800 (PST)
"David S. Miller" <davem@davemloft.net> wrote:

> From: Linus Torvalds <torvalds@osdl.org>
> Date: Thu, 23 Mar 2006 12:38:33 -0800 (PST)
> 
> > Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
> > SCM" environments, ie just basic SVN or CVS. What are we missing in that 
> > department? (The only thing I can think of is a diff colorizer, which some 
> > prople seem to really want).
> 
> gitk does color the diffs already, or are we talking about some
> "side-by-side" multiple window thing showing "before" on the
> left and "after" on the right?

Colorized "git diff", like cg-diff.  Vim users can use vimpager instead
of less.

-- 
http://onion.dynserv.net/~timo/

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:48                 ` Shawn Pearce
  2006-03-23 21:11                   ` Ryan Anderson
@ 2006-03-23 23:30                   ` Junio C Hamano
  2006-03-24 15:12                     ` Johannes Schindelin
  2006-03-24 11:11                   ` Mark Wooding
  2 siblings, 1 reply; 43+ messages in thread
From: Junio C Hamano @ 2006-03-23 23:30 UTC (permalink / raw)
  To: Shawn Pearce; +Cc: Linus Torvalds, sean, keithp, hpa, jbglaw, git

Shawn Pearce <spearce@spearce.org> writes:

> I'm not trying to bash Windows users.  I'm just saying that there's
> definately a large user base for SCMs such as CVS who just want
> to check in the latest version of a file they have to maintain.
> Many of these people are afraid of a command prompt.  Asking them
> to install Cygwin just to check in a file is a difficult challenge.

Export your git repository via git-cvsserver and have them use
TortoiseCVS.  Such "maintain the tip and that is the only thing
what interest me" people do not even need to know the backend is
git.

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 21:02           ` Errors GITtifying GCC and Binutils Ryan Anderson
  2006-03-23 21:39             ` Linus Torvalds
@ 2006-03-23 23:51             ` Junio C Hamano
  2006-03-24  0:06               ` Ryan Anderson
  1 sibling, 1 reply; 43+ messages in thread
From: Junio C Hamano @ 2006-03-23 23:51 UTC (permalink / raw)
  To: Ryan Anderson; +Cc: git

Ryan Anderson <ryan@michonline.com> writes:

> Git has taken a very pragmatic approach, in that the goal has been "What
> is the smallest number of concepts we can create that let us solve the
> problem, even if we occassionally have to make some tradeoffs?"
> (Thinking of rename detection there, mostly.)

I do not see it as a tradeoff not to record renames.  It _is_ a
feature.

On the other hand, rename detection is an eye candy, which is
sometimes useful but only sometimes.  If you look at the history
of a real project, content movement across multiple files is a
norm, and content movement between two files, one of which
disappears and the other appears, is a rather narrow special
case.  If you think in terms of "renames", you can only talk
about that special case, and rename detection also can only deal
with that special case.

Two good examples were discussed some time ago on the list.  One
was about "where did {powerpc,pcc64}/Makefile come from?" and
the answer was "content migrated over time across multiple
commits, and you cannot really say this Makefile is renamed from
somewhere".  The other was the comment by Linus on how
revision.c evolved in our project.

I am reasonably happy with how our rename detection turned out
to be, but we should keep in mind that detecting file renames is
scratching only a narrowly defined subset of the problem space.

Pickaxe was an attempt to help tracking other forms of content
movement, and it is minimally useful as a building block, but if
we really want to track content movement across file boundaries,
like Linus originally envisioned in 

	http://article.gmane.org/gmane.comp.version-control.git/217

we need to have a bit more Porcelain around it.

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 23:51             ` Junio C Hamano
@ 2006-03-24  0:06               ` Ryan Anderson
  2006-03-24  0:34                 ` Junio C Hamano
  0 siblings, 1 reply; 43+ messages in thread
From: Ryan Anderson @ 2006-03-24  0:06 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Thu, Mar 23, 2006 at 03:51:51PM -0800, Junio C Hamano wrote:
> Ryan Anderson <ryan@michonline.com> writes:
> 
> > Git has taken a very pragmatic approach, in that the goal has been "What
> > is the smallest number of concepts we can create that let us solve the
> > problem, even if we occassionally have to make some tradeoffs?"
> > (Thinking of rename detection there, mostly.)
> 
> I do not see it as a tradeoff not to record renames.  It _is_ a
> feature.

Oh, I don't disagree.

What I was getting at was that not recording renames means we've traded
off a little bit of speed and maybe accuracy, when we care about
renames, for a simpler, better implementation.

It's a tradeoff, but one that was very much the right decision, IMO.

-- 

Ryan Anderson
  sometimes Pug Majere

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 21:11                   ` Ryan Anderson
@ 2006-03-24  0:15                     ` Junio C Hamano
  0 siblings, 0 replies; 43+ messages in thread
From: Junio C Hamano @ 2006-03-24  0:15 UTC (permalink / raw)
  To: Ryan Anderson; +Cc: git

Ryan Anderson <ryan@michonline.com> writes:

> On Thu, Mar 23, 2006 at 03:48:25PM -0500, Shawn Pearce wrote:
>> 
>> But your definately right; once the blame/annotate war settles out
>> GIT will have pretty much everything one might need - except a good
>> distributed bug/issue tracking type system.  :-)
>
> Junio, where do we stand on this?

As far as I am concerned, you two are still on the starting
line.  Admittably, Fredrik took a bit more time to come to there
while you were still waiting there.  But since then I do not
think either of you moved much.

I have not seen anybody to come up with a test history, compare
what the two algorithms do on that test history, and argue why
one is more correct than the other.  I've been too busy to start
that myself, and honestly speaking I am not that interested in
the details myself in that area.

To me, the only reason annotate/blame exist in git is to support
the cvs server emulation, so obviously I want at least _one_ of
them working correctly to be usable by git-cvsserver, but beyond
that, which one to pick is not really what I am interested in.
When I am working in a git repository, I'd rather use
combination of whatchanged and pickaxe not annotate/blame myself
anyway.

I suspect there are people a lot more interested in having a
better annotate/blame, and I've been sort-of hoping somebody
would really start that blame/annotate war.

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24  0:06               ` Ryan Anderson
@ 2006-03-24  0:34                 ` Junio C Hamano
  0 siblings, 0 replies; 43+ messages in thread
From: Junio C Hamano @ 2006-03-24  0:34 UTC (permalink / raw)
  To: Ryan Anderson; +Cc: git

Ryan Anderson <ryan@michonline.com> writes:

> What I was getting at was that not recording renames means we've traded
> off a little bit of speed and maybe accuracy, when we care about
> renames, for a simpler, better implementation.
>
> It's a tradeoff, but one that was very much the right decision, IMO.

Well, that is like arguing that we do not autocommit every time
the user makes any change in the working tree -- which means git
cannot be used to go back to _any_ time in history -- but we are
making that tradeoff and instead letting the user to decide
explicitly when to make commits.

Recording every keystrokes _is_ a wrong feature and not
supporting a wrong feature _is_ a feature.  It is not a
tradeoff.

When I said "not recording renames _is_ a feature", I really
meant it that way.

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:03       ` Jan-Benedict Glaw
  2006-03-23 20:42         ` Linus Torvalds
@ 2006-03-24  0:39         ` Chris Shoemaker
  2006-03-24  6:12           ` Keith Packard
  2006-03-24  7:52           ` Jan-Benedict Glaw
  1 sibling, 2 replies; 43+ messages in thread
From: Chris Shoemaker @ 2006-03-24  0:39 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: Linus Torvalds, git

On Thu, Mar 23, 2006 at 09:03:06PM +0100, Jan-Benedict Glaw wrote:
> On Wed, 2006-03-22 17:28:23 -0800, Linus Torvalds <torvalds@osdl.org> wrote:
> > On Wed, 22 Mar 2006, Linus Torvalds wrote:
> > > This one-liner to cvsps.c seems to make sure we have an ancestor branch 
> > > for that "gdb-4.18-branch" branch, at least according to the cvsps output. 
> > 
> > The "git cvsimport" is still running, but at least it seems to be happily 
> > running further past the point it broke earlier.
> 
> I've started it once again, too, with the one-liner added to Debian
> unstable's version of cvsps:
> 
> It seems there's a patch like
> http://www.gelato.unsw.edu.au/archives/git/0602/16278.html is missing?
> ...or we need a better cvsps.  Shall I add it and try again / try to
> continue, or give up on it for now?  Though it would be nice to have
> these two large and important source trees under GIT control :-)

You make want to try the cvsps patch I attached to the email here:

http://www.gelato.unsw.edu.au/archives/git/0511/11812.html

Good luck!

-chris

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24  0:39         ` Chris Shoemaker
@ 2006-03-24  6:12           ` Keith Packard
  2006-03-24  7:52           ` Jan-Benedict Glaw
  1 sibling, 0 replies; 43+ messages in thread
From: Keith Packard @ 2006-03-24  6:12 UTC (permalink / raw)
  To: Chris Shoemaker; +Cc: keithp, Jan-Benedict Glaw, Linus Torvalds, git

[-- Attachment #1: Type: text/plain, Size: 1820 bytes --]

On Thu, 2006-03-23 at 19:39 -0500, Chris Shoemaker wrote:
> On Thu, Mar 23, 2006 at 09:03:06PM +0100, Jan-Benedict Glaw wrote:
> > On Wed, 2006-03-22 17:28:23 -0800, Linus Torvalds <torvalds@osdl.org> wrote:
> > > On Wed, 22 Mar 2006, Linus Torvalds wrote:
> > > > This one-liner to cvsps.c seems to make sure we have an ancestor branch 
> > > > for that "gdb-4.18-branch" branch, at least according to the cvsps output. 
> > > 
> > > The "git cvsimport" is still running, but at least it seems to be happily 
> > > running further past the point it broke earlier.
> > 
> > I've started it once again, too, with the one-liner added to Debian
> > unstable's version of cvsps:
> > 
> > It seems there's a patch like
> > http://www.gelato.unsw.edu.au/archives/git/0602/16278.html is missing?
> > ...or we need a better cvsps.  Shall I add it and try again / try to
> > continue, or give up on it for now?  Though it would be nice to have
> > these two large and important source trees under GIT control :-)

I'm busy writing a new import tool to get X into git; I've got it
generating complete revision trees in memory, and dumping them in
graphviz form. I'd sure be interested to see how well this works with
other ancient and broken CVS trees. Once I've got it dealing with
current X.org CVS correctly (or, at least, reasonably), I'll finish it
up and get it to actually generate the repository.

git://git.freedesktop.org/~keithp/parsecvs

Usage is completely lame at present -- a list of ,v file names either on
the command line or via stdin (one name per line). The .dot file is
output on stdout, with some diagnostics on stderr.

Pipe this through 'dot -Tsvg' and you'll get a .svg file which can be
viewed with inkscape. They're generally immense...

-- 
keith.packard@intel.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 191 bytes --]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24  0:39         ` Chris Shoemaker
  2006-03-24  6:12           ` Keith Packard
@ 2006-03-24  7:52           ` Jan-Benedict Glaw
  2006-03-25  0:37             ` Chris Shoemaker
  1 sibling, 1 reply; 43+ messages in thread
From: Jan-Benedict Glaw @ 2006-03-24  7:52 UTC (permalink / raw)
  To: Chris Shoemaker; +Cc: Linus Torvalds, git

[-- Attachment #1: Type: text/plain, Size: 1686 bytes --]

On Thu, 2006-03-23 19:39:44 -0500, Chris Shoemaker <c.shoemaker@cox.net> wrote:
> On Thu, Mar 23, 2006 at 09:03:06PM +0100, Jan-Benedict Glaw wrote:
> > On Wed, 2006-03-22 17:28:23 -0800, Linus Torvalds <torvalds@osdl.org> wrote:
> > It seems there's a patch like
> > http://www.gelato.unsw.edu.au/archives/git/0602/16278.html is missing?
> > ...or we need a better cvsps.  Shall I add it and try again / try to
> > continue, or give up on it for now?  Though it would be nice to have
> > these two large and important source trees under GIT control :-)
> 
> You make want to try the cvsps patch I attached to the email here:
> 
> http://www.gelato.unsw.edu.au/archives/git/0511/11812.html

[...]
cvs rlog: Logging src/winsup/w32api/include/ddk
cvs rlog: Logging src/winsup/w32api/include/directx
cvs rlog: Logging src/winsup/w32api/lib
cvs rlog: Logging src/winsup/w32api/lib/ddk
cvs rlog: Logging src/winsup/w32api/lib/directx
invalid initial_branch for file bfd/po/BLD-POTFILES.in, probably from old cache, run with -x.
DONE; creating master branch
fatal: refs/heads/origin: not a valid SHA1
fatal: master: not a valid SHA1
fatal: 'HEAD': No such file or directory
usage: git-read-tree (<sha> | -m [--aggressive] [-u | -i] <sha1> [<sha2> [<sha3>]])
checkout failed: 256


So it fails pretty early this time :)

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:48                 ` Shawn Pearce
  2006-03-23 21:11                   ` Ryan Anderson
  2006-03-23 23:30                   ` Junio C Hamano
@ 2006-03-24 11:11                   ` Mark Wooding
  2006-03-24 11:29                     ` Andreas Ericsson
  2 siblings, 1 reply; 43+ messages in thread
From: Mark Wooding @ 2006-03-24 11:11 UTC (permalink / raw)
  To: git

Shawn Pearce <spearce@spearce.org> wrote:

> But your definately right; once the blame/annotate war settles out
> GIT will have pretty much everything one might need - except a good
> distributed bug/issue tracking type system.  :-)

There ought to be such a thing.  And I hope it gets called `bugger'.

-- [mdw]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24 11:11                   ` Mark Wooding
@ 2006-03-24 11:29                     ` Andreas Ericsson
  0 siblings, 0 replies; 43+ messages in thread
From: Andreas Ericsson @ 2006-03-24 11:29 UTC (permalink / raw)
  To: git

Mark Wooding wrote:
> Shawn Pearce <spearce@spearce.org> wrote:
> 
> 
>>But your definately right; once the blame/annotate war settles out
>>GIT will have pretty much everything one might need - except a good
>>distributed bug/issue tracking type system.  :-)
> 
> 
> There ought to be such a thing.  And I hope it gets called `bugger'.
> 

I'm working (slowly) on integrating it with Mantis (www.mantisbt.org), 
which we use at work. It shouldn't be difficult to reuse that code with 
Bugzilla and other similar trackers.

The recognition thing is done in the update-script, looking for a hash 
followed by a number (the bug-id) and then sending that commit to 
another program, so it's simply a matter of including the bug-id, 
prefixed with a hash, and the bug-topic somewhere in the commit message, 
which is a fairly good practice anyways.

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

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 20:38               ` Linus Torvalds
                                   ` (2 preceding siblings ...)
       [not found]                 ` <20060323170515.3612dc61.seanlkml@sympatico.ca>
@ 2006-03-24 12:32                 ` Ralf Baechle
  2006-03-24 12:59                   ` missing git features (was: Re: Errors GITtifying GCC and Binutils) Andreas Ericsson
  3 siblings, 1 reply; 43+ messages in thread
From: Ralf Baechle @ 2006-03-24 12:32 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: sean, keithp, hpa, jbglaw, git

On Thu, Mar 23, 2006 at 12:38:33PM -0800, Linus Torvalds wrote:

> > lol, that sounds like a really good plan.  Perhaps as a two pronged effort
> > its worth changing the notion that git is primarily "plumbing".   Adding
> > some of the nice features of cogito and other "porcelains" into the core
> > git might go a ways toward converting the few naysayers we don't kill.
> 
> Actually, as far as I can tell, git already has a hell of a lot more 
> porcelain than pretty much any non-IDE type traditional SCM. Certainly 
> more than CVS.
> 
> Yeah, I'm not counting things like Eclipse etc. I'm talking about "plain 
> SCM" environments, ie just basic SVN or CVS. What are we missing in that 
> department? (The only thing I can think of is a diff colorizer, which some 
> prople seem to really want).

I'd like sunglasses with that diff colouriser, please ;-)

For my various hacking projects and archiving needs git has done me alot
of good and it's pretty close to the answer to the question for life,
universe and everything.  But a few rough areas (I'm currently using git
1.2.4 btw.)  remain:

 o During the debugging phase before a new kernel release I put anything
   that isn't appropriate for the master branch on a queue branch which
   I am rebasing frequently to ensure things will work right in the
   "patch bombing" phase before the next -rc1 when I'm sending everything
   on the queue branch upstream.
   The problem: users pull such a branch, create their own branch starting
   somewhere on my queue branch.  So eventually when they pull again
   after I rebased the branch things blow up spectactularly.  This needs a
   simple solution.
 o git rebase had no reasonable handling of conflicts last I ran into a
   rebase conflict.
 o If a file is modified in a user's tree and a non-conflicting patch is
   being pull users seem to expect the old CVS behaviour which is trying
   to merge into the checked out tree, worst case adding conflict markers.
   Git just refuses the operation.
 o I had people piling up over 2GB in their $GIT_DIR/objects/pack/
   directory because they were using the rsync method for updating.
 o Git is a dramatically more powerful and for most operations better
   performing SCM than CVS - but CVS is what people know, it's easy to
   learn and handling special cases like conflicts is sort of obvious
   because CVS expects the user to cleanup the mess and does not try to
   compete with the users in that.
 o A Git for Dummies book would be helpful.
 o When users have problems with git I found it useful to explain them
   how git internally works so they get a better understanding of what
   actually is going on.  Dominic Sweetman which is an excellent
   technical writer has made a similar experience and started writing
   a bit about git in the wiki at http://www.linux-mips.org/wiki/WhatIsGit
   May somebody wants to extend this?
   (Dominic unfortunately is currently deeply burried in writing the
   2nd issue of See MIPS Run, so can't really contribute ...)

  Ralf

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-22 23:39 ` Linus Torvalds
  2006-03-23  0:12   ` Linus Torvalds
@ 2006-03-24 12:44   ` Ralf Baechle
  1 sibling, 0 replies; 43+ messages in thread
From: Ralf Baechle @ 2006-03-24 12:44 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Jan-Benedict Glaw, git

On Wed, Mar 22, 2006 at 03:39:00PM -0800, Linus Torvalds wrote:

> it's "PatchSet 104" (well, for me it is, I have a hacked cvsps, so it 
> might not be that for you), which creates the "gdb-4_18-branch", but it 
> appears that cvsps hasn't actually figured out any "Ancestor branch" for 
> that commit.
> 
> What a crock.
> 
> Anyway, it's clearly a cvsps bug (mentioning a new branch without the 
> _source_ of that branch). Equally clearly, "git cvsimport" is being an ass 
> about then failing so totally on it.
> 
> I'll try to take a look at why cvsps does that.

Last I converted CVS trees to git found that about half of the branches
were branching off from the wrong commit of the parent branch.  At that
time I decieded to just move the branch using a quick script instead of
diving into cvsps.

  Ralf

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

* Re: missing git features (was: Re: Errors GITtifying GCC and Binutils)
  2006-03-24 12:32                 ` Ralf Baechle
@ 2006-03-24 12:59                   ` Andreas Ericsson
  2006-03-24 16:44                     ` Carl Worth
  0 siblings, 1 reply; 43+ messages in thread
From: Andreas Ericsson @ 2006-03-24 12:59 UTC (permalink / raw)
  To: git

Ralf Baechle wrote:
> 
> For my various hacking projects and archiving needs git has done me alot
> of good and it's pretty close to the answer to the question for life,
> universe and everything.  But a few rough areas (I'm currently using git
> 1.2.4 btw.)  remain:
> 
>  o During the debugging phase before a new kernel release I put anything
>    that isn't appropriate for the master branch on a queue branch which
>    I am rebasing frequently to ensure things will work right in the
>    "patch bombing" phase before the next -rc1 when I'm sending everything
>    on the queue branch upstream.
>    The problem: users pull such a branch, create their own branch starting
>    somewhere on my queue branch.  So eventually when they pull again
>    after I rebased the branch things blow up spectactularly.  This needs a
>    simple solution.

See how Junio does with next and pu and recommend your users to do the 
same. There's no way of pulling a rebased branch, because the rebasing 
destroys ancestry information, meaning the original commits other people 
have cease to exist in your repository.

>  o git rebase had no reasonable handling of conflicts last I ran into a
>    rebase conflict.

"git rerere" might be of service here. Other than that, it's merging 
that goes, unless we come up with a way of patching the delta on the fly 
when such things are encountered. Unfortunately that is beyond me, but 
perhaps there are other takers on the list. It would indeed be very nice 
to have.

>  o If a file is modified in a user's tree and a non-conflicting patch is
>    being pull users seem to expect the old CVS behaviour which is trying
>    to merge into the checked out tree, worst case adding conflict markers.
>    Git just refuses the operation.

A pull (fetch + merge) requires a pristine index. If the user has done 
"git update-index" on the files, but not committed the merge *should* 
fail every time. If they have changes in the working tree but not in the 
index, the fetch should work, but the final phase (checking out the 
updated head) should fail, since the working tree has un-committed changes.


>  o I had people piling up over 2GB in their $GIT_DIR/objects/pack/
>    directory because they were using the rsync method for updating.

This most likely happens because you're doing too large packs. You can 
do incremental packing, or ask users to switch to using the git:// 
protocol, which is much faster for incremental updates.

>  o Git is a dramatically more powerful and for most operations better
>    performing SCM than CVS - but CVS is what people know, it's easy to
>    learn and handling special cases like conflicts is sort of obvious
>    because CVS expects the user to cleanup the mess and does not try to
>    compete with the users in that.


git doesn't compete with the user either, but it doesn't touch the 
working tree unless the merge succeeds, which is sane imo but surprising 
for CVS users where the action is done in the working tree and the 
result is put under rcs control.


>  o A Git for Dummies book would be helpful.

The tutorial is fairly complete.

http://www.kernel.org/pub/software/scm/git/docs/tutorial.html

>  o When users have problems with git I found it useful to explain them
>    how git internally works so they get a better understanding of what
>    actually is going on.  Dominic Sweetman which is an excellent
>    technical writer has made a similar experience and started writing
>    a bit about git in the wiki at http://www.linux-mips.org/wiki/WhatIsGit
>    May somebody wants to extend this?
>    (Dominic unfortunately is currently deeply burried in writing the
>    2nd issue of See MIPS Run, so can't really contribute ...)
> 

Good to know. Unfortunately I don't know git internals half as well as I 
would like. I can sometimes answer questions, but starting from scratch 
and explain it is beyond me.

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

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-23 23:30                   ` Junio C Hamano
@ 2006-03-24 15:12                     ` Johannes Schindelin
  0 siblings, 0 replies; 43+ messages in thread
From: Johannes Schindelin @ 2006-03-24 15:12 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,

On Thu, 23 Mar 2006, Junio C Hamano wrote:

> Shawn Pearce <spearce@spearce.org> writes:
> 
> > I'm not trying to bash Windows users.  I'm just saying that there's
> > definately a large user base for SCMs such as CVS who just want
> > to check in the latest version of a file they have to maintain.
> > Many of these people are afraid of a command prompt.  Asking them
> > to install Cygwin just to check in a file is a difficult challenge.
> 
> Export your git repository via git-cvsserver and have them use
> TortoiseCVS.  Such "maintain the tip and that is the only thing
> what interest me" people do not even need to know the backend is
> git.

Now if I could only find a way to tell TortoiseCVS which CVS_SERVER to 
use...

Ciao,
Dscho

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

* Re: missing git features (was: Re: Errors GITtifying GCC and Binutils)
  2006-03-24 12:59                   ` missing git features (was: Re: Errors GITtifying GCC and Binutils) Andreas Ericsson
@ 2006-03-24 16:44                     ` Carl Worth
  2006-03-24 18:55                       ` missing git features Andreas Ericsson
  0 siblings, 1 reply; 43+ messages in thread
From: Carl Worth @ 2006-03-24 16:44 UTC (permalink / raw)
  To: Andreas Ericsson; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 859 bytes --]

On Fri, 24 Mar 2006 13:59:02 +0100, Andreas Ericsson wrote:
> See how Junio does with next and pu and recommend your users to do the 
> same. There's no way of pulling a rebased branch, because the rebasing 
> destroys ancestry information, meaning the original commits other people 
> have cease to exist in your repository.

But the "other people" still have those commits, so it should be
rather straightforward for a tool to also perform a rebase for them
when doing this kind of "rebased pull". I think there's just a single
arc of data missing showing where a rebased commit object came from.

So this sounds solvable, and it is something I would very much enjoy
having, (call me funny, but I prefer to rebase and avoid a merge
commit when looking at independent lines of development for which
logically there shouldn't be any "merge" required).

-Carl

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-22 13:33 Errors GITtifying GCC and Binutils Jan-Benedict Glaw
  2006-03-22 23:39 ` Linus Torvalds
@ 2006-03-24 18:25 ` Jan-Benedict Glaw
  2006-03-24 19:10   ` Andreas Ericsson
                     ` (2 more replies)
  2006-03-25  9:10 ` Errors GITtifying GCC and Binutils James Cloos
  2 siblings, 3 replies; 43+ messages in thread
From: Jan-Benedict Glaw @ 2006-03-24 18:25 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 4040 bytes --]

On Wed, 2006-03-22 14:33:37 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:

Since it seems nobody looked at the GCC import run (which means to use
the svnimport), I ran it again, under strace control:

> GCC
> ~~~
> $ /home/jbglaw/bin/git svnimport -C gcc -v svn://gcc.gnu.org/svn/gcc

> Committed change 3936:/ 1993-03-31 05:44:03)
> Commit ID ceff85145f8671fb2a9d826a761cedc2a507bd1e
> Writing to refs/heads/origin
> DONE: 3936 origin ceff85145f8671fb2a9d826a761cedc2a507bd1e
> ... 3937 trunk/gcc/final.c ...
> Can't fork at /home/jbglaw/bin/git-svnimport line 379.

... 4279 trunk/gcc/config/i386/xm-sco.h ...

This time it broke at a different revision, so I guess it's not a SVN
or git / git-svnimport problem, but rather a problem of my Perl
installation or the kernel itself?

Tree ID 5b04fbc98f8dc9d50506b6dbc8f31567eea2e225
Committed change 4279:/ 1993-04-29 21:13:46)
Merge parent branch: eeb742d8ffd78d58f05d0b9c80bb55e1dc25ad13
Commit ID e85129f5e8af0b93a41d5bf294f17a9c9bf9fa21
Writing to refs/heads/origin
DONE: 4279 origin e85129f5e8af0b93a41d5bf294f17a9c9bf9fa21
... 4280 trunk/gcc/config/mips/mips.h ...
Tree ID 3feb45ec3ee93e8a6d75b8ce552281e0ed2d7215
Committed change 4280:/ 1993-04-30 00:53:35)
Merge parent branch: e85129f5e8af0b93a41d5bf294f17a9c9bf9fa21
Commit ID 34b473ffc0e05419c50be848d5349592b7c48ee3
Writing to refs/heads/origin
DONE: 4280 origin 34b473ffc0e05419c50be848d5349592b7c48ee3
readline() on closed filehandle H at /home/jbglaw/bin/git-svnimport line 562.
4281: cannot find commit 'origin'!
readline() on closed filehandle H at /home/jbglaw/bin/git-svnimport line 562.
4282: cannot find commit 'origin'!
readline() on closed filehandle H at /home/jbglaw/bin/git-svnimport line 562.
4283: cannot find commit 'origin'!
readline() on closed filehandle H at /home/jbglaw/bin/git-svnimport line 562.
4284: cannot find commit 'origin'!
readline() on closed filehandle H at /home/jbglaw/bin/git-svnimport line 562.
4285: cannot find commit 'origin'!
... 4286 trunk/gcc/fixincludes ...
Can't fork at /home/jbglaw/bin/git-svnimport line 379.


strace of this:

read(3, "rintf decl"..., 4096)          = 2896
write(6, "superfluou"..., 4096)         = 4096
read(3, "$file ${LI"..., 4096)          = 1448
read(3, "m -f ${LIB"..., 4096)          = 1448
read(3, "LIB}/machi"..., 4096)          = 1448
write(6, " 2>/dev/nu"..., 4096)         = 4096
read(3, "memory\\.h"..., 4096)          = 2896
read(3, "h>\") > ${"..., 4096)          = 1448
write(6, "&& [ ! -r "..., 4096)         = 4096
read(3, " char *__n"..., 4096)          = 3438
write(6, "claim to h"..., 4096)         = 4096
write(6, "ymbolic no"..., 446)          = 446
close(6)                                = 0
pipe([6, 7])                            = 0
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb7ddf708) = -1 ENOMEM (Cannot allocate memory)
close(6)                                = 0
close(7)                                = 0
write(2, "Can\'t for"..., 55)           = 55
close(4)                                = 0
close(3)                                = 0

What are possible reasons for clone() to fail with -ENOMEN? I have to
admit that the box _is_ loaded a bit all the time:

jbglaw@bixie:~/vax/git-conversion$ uptime
 19:23:58 up 136 days,  7:46, 20 users,  load average: 4.45, 4.25, 3.05
jbglaw@bixie:~/vax/git-conversion$ free
             total       used       free     shared    buffers     cached
Mem:        507308     501760       5548          0       2184      16900
-/+ buffers/cache:     482676      24632
Swap:      2441872    1295512    1146360

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: missing git features
  2006-03-24 16:44                     ` Carl Worth
@ 2006-03-24 18:55                       ` Andreas Ericsson
  0 siblings, 0 replies; 43+ messages in thread
From: Andreas Ericsson @ 2006-03-24 18:55 UTC (permalink / raw)
  To: Carl Worth; +Cc: git

Carl Worth wrote:
> On Fri, 24 Mar 2006 13:59:02 +0100, Andreas Ericsson wrote:
> 
>>See how Junio does with next and pu and recommend your users to do the 
>>same. There's no way of pulling a rebased branch, because the rebasing 
>>destroys ancestry information, meaning the original commits other people 
>>have cease to exist in your repository.
> 
> 
> But the "other people" still have those commits, so it should be
> rather straightforward for a tool to also perform a rebase for them
> when doing this kind of "rebased pull".


Yes they do, but you don't, so their tip won't match yours, meaning 
their git will try a merge, which will fail since lots of commits are 
already applied. Perhaps it would be possible to try the blobs against 
each other, if anyone's interested.


> I think there's just a single
> arc of data missing showing where a rebased commit object came from.
> 
> So this sounds solvable, and it is something I would very much enjoy
> having, (call me funny, but I prefer to rebase and avoid a merge
> commit when looking at independent lines of development for which
> logically there shouldn't be any "merge" required).
> 

For the cases where no merge is required you could rebase several 
branches on top of one and simply publish that one. If that's the case, 
git would need the ability to know what branches are exported and which 
arne't, which should be a lot simpler than implementing a rebased-merge 
strategy.

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

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24 18:25 ` Jan-Benedict Glaw
@ 2006-03-24 19:10   ` Andreas Ericsson
  2006-03-25 10:17     ` Jan-Benedict Glaw
  2006-03-24 19:35   ` Santi Béjar
  2006-03-25  8:25   ` Eric Wong
  2 siblings, 1 reply; 43+ messages in thread
From: Andreas Ericsson @ 2006-03-24 19:10 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git

Jan-Benedict Glaw wrote:
> On Wed, 2006-03-22 14:33:37 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> 
> Since it seems nobody looked at the GCC import run (which means to use
> the svnimport), I ran it again, under strace control:
> 

If you send me a bzipped tar-ball of the repo you're trying to import, 
preferrably with all the patches to cvsps you've tried, I'll see what I 
can do over the weekend.

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

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24 18:25 ` Jan-Benedict Glaw
  2006-03-24 19:10   ` Andreas Ericsson
@ 2006-03-24 19:35   ` Santi Béjar
  2006-03-25  8:25   ` Eric Wong
  2 siblings, 0 replies; 43+ messages in thread
From: Santi Béjar @ 2006-03-24 19:35 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git

Jan-Benedict Glaw <jbglaw@lug-owl.de> writes:

> On Wed, 2006-03-22 14:33:37 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
>
> Since it seems nobody looked at the GCC import run (which means to use
> the svnimport), I ran it again, under strace control:
>
>> GCC
>> ~~~
>> $ /home/jbglaw/bin/git svnimport -C gcc -v svn://gcc.gnu.org/svn/gcc
>
>> Committed change 3936:/ 1993-03-31 05:44:03)
>> Commit ID ceff85145f8671fb2a9d826a761cedc2a507bd1e
>> Writing to refs/heads/origin
>> DONE: 3936 origin ceff85145f8671fb2a9d826a761cedc2a507bd1e
>> ... 3937 trunk/gcc/final.c ...
>> Can't fork at /home/jbglaw/bin/git-svnimport line 379.
>

I have the same (?) problem with one of my svn repository. It worked
before (I've redone the import with the -r flag), so I bisected it.
The problematic commit seems to be:

diff-tree 4802426... (from 525c0d7...)
Author: Karl  Hasselström <kha@treskal.com>
Date:   Sun Feb 26 06:11:27 2006 +0100

    svnimport: Convert executable flag

    Convert the svn:executable property to file mode 755 when converting
    an SVN repository to GIT.

    Signed-off-by: Karl Hasselström <kha@treskal.com>
    Signed-off-by: Junio C Hamano <junkio@cox.net>

:100755 100755 ee2940f... 6603b96... M  git-svnimport.perl

I think it has a memory leak, it used up to 140m of memory.

$ git reset --hard 4802426^
$ time ../git-svnimport.perl file:///path/
Use of uninitialized value in string eq at ../git-svnimport.perl line 463.
Use of uninitialized value in substitution (s///) at ../git-svnimport.perl line 466.
real    0m55.801s
user    0m30.578s
sys     0m23.084s

$ git reset --hard 4802426
$ time ../git-svnimport.perl file:///path/
Use of uninitialized value in string eq at ../git-svnimport.perl line 463.
Use of uninitialized value in substitution (s///) at ../git-svnimport.perl line 466.
Can't fork at /home/santi/usr/src/scm/git/git-svnimport.perl line 331.
real    6m2.163s
user    0m20.332s
sys     0m50.180s

and it didn't finished. Hope it helps.

Santi

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24  7:52           ` Jan-Benedict Glaw
@ 2006-03-25  0:37             ` Chris Shoemaker
  0 siblings, 0 replies; 43+ messages in thread
From: Chris Shoemaker @ 2006-03-25  0:37 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: Linus Torvalds, git

On Fri, Mar 24, 2006 at 08:52:29AM +0100, Jan-Benedict Glaw wrote:
> On Thu, 2006-03-23 19:39:44 -0500, Chris Shoemaker <c.shoemaker@cox.net> wrote:
> > On Thu, Mar 23, 2006 at 09:03:06PM +0100, Jan-Benedict Glaw wrote:
> > > On Wed, 2006-03-22 17:28:23 -0800, Linus Torvalds <torvalds@osdl.org> wrote:
> > > It seems there's a patch like
> > > http://www.gelato.unsw.edu.au/archives/git/0602/16278.html is missing?
> > > ...or we need a better cvsps.  Shall I add it and try again / try to
> > > continue, or give up on it for now?  Though it would be nice to have
> > > these two large and important source trees under GIT control :-)
> > 
> > You make want to try the cvsps patch I attached to the email here:
> > 
> > http://www.gelato.unsw.edu.au/archives/git/0511/11812.html
> 
> [...]

> invalid initial_branch for file bfd/po/BLD-POTFILES.in, probably
> from old cache, run with -x.

I guess that error message wasn't quite as obvious as I intended.

That means you have old cvsps cache state hanging around.  You can
either run cvsps with -x or delete the cache file manually.  Those are
the files in ~/.cvsps.

Incidentally, I'd recommend doing this in two stages during
trouble-shooting.  Run cvsps first and verify that you can produce a
valid ancestry tree.  If it's not-quite-right you can even edit the
cvsps output to reparent the incorrect branches.  Then run
git-cvsimport after you're satisfied with the ancestry.

-chris

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24 18:25 ` Jan-Benedict Glaw
  2006-03-24 19:10   ` Andreas Ericsson
  2006-03-24 19:35   ` Santi Béjar
@ 2006-03-25  8:25   ` Eric Wong
  2006-03-26  2:52     ` [PATCH] contrib/git-svn: stabilize memory usage for big fetches Eric Wong
  2 siblings, 1 reply; 43+ messages in thread
From: Eric Wong @ 2006-03-25  8:25 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git

Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> On Wed, 2006-03-22 14:33:37 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> 
> Since it seems nobody looked at the GCC import run (which means to use
> the svnimport), I ran it again, under strace control:

If you don't care for automated branch handling, how about trying git-svn?
under the contrib/ directory in git.git

	git-svn init svn://gcc.gnu.org/svn/gcc
	git-svn fetch

> > GCC
> > ~~~
> > $ /home/jbglaw/bin/git svnimport -C gcc -v svn://gcc.gnu.org/svn/gcc
> 
> > Committed change 3936:/ 1993-03-31 05:44:03)
> > Commit ID ceff85145f8671fb2a9d826a761cedc2a507bd1e
> > Writing to refs/heads/origin
> > DONE: 3936 origin ceff85145f8671fb2a9d826a761cedc2a507bd1e
> > ... 3937 trunk/gcc/final.c ...
> > Can't fork at /home/jbglaw/bin/git-svnimport line 379.
> 
> ... 4279 trunk/gcc/config/i386/xm-sco.h ...
> 
> This time it broke at a different revision, so I guess it's not a SVN
> or git / git-svnimport problem, but rather a problem of my Perl
> installation or the kernel itself?

I've known of SVN library bindings leaking memory in the past, but I
thought it's been solved.  Afaik, any memory allocated by the Perl
interpreter is never released back to the kernel, either.  (At least
that seems to be the case with my setup (Debian unstable, Perl 5.8.8,
2.6 kernel, x86 machine).

> What are possible reasons for clone() to fail with -ENOMEN? I have to
> admit that the box _is_ loaded a bit all the time:
> 
> jbglaw@bixie:~/vax/git-conversion$ uptime
>  19:23:58 up 136 days,  7:46, 20 users,  load average: 4.45, 4.25, 3.05
> jbglaw@bixie:~/vax/git-conversion$ free
>              total       used       free     shared    buffers     cached
> Mem:        507308     501760       5548          0       2184      16900
> -/+ buffers/cache:     482676      24632
> Swap:      2441872    1295512    1146360

Some importers (my own git-svn included) aren't amazingly efficient when
handling lots of history which gcc has.   It looks like (from what I
understand of the SVN api used in git-svnimport) is that the entire log
for the 100k+ revisions in the tree is slurped down into memory before
any processing is done.

git-svn does this too, but by parsing the output of the svn binary
instead of using the library, so at least it won't have issues with the
svn bindings and libraries to worry about.

My git-svn process running on the SVN tree just finished parsing the svn
log output, and it's maxed out at 74M RSS (on a 32-bit x86).  It'll
probably take a while to import it all (which I won't do), but I could
have just as easily done the following to reduce memory usage by ~half:

	git-svn fetch -r0:50000		# import the first 50000k
	git-svn fetch			# now import the remaining

Afaik, there's no way to do something like the above with git-svnimport
for memory-starved setups.

-- 
Eric Wong

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-22 13:33 Errors GITtifying GCC and Binutils Jan-Benedict Glaw
  2006-03-22 23:39 ` Linus Torvalds
  2006-03-24 18:25 ` Jan-Benedict Glaw
@ 2006-03-25  9:10 ` James Cloos
  2 siblings, 0 replies; 43+ messages in thread
From: James Cloos @ 2006-03-25  9:10 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: git

Isn't gcc in svn nowadays?

I'd try something like:

rsync://gcc.gnu.org/gcc-svn gcc-svn
git-svnimport -C gcc-git -i -v file:///$(pwd)/gcc-svn

unless you have write access, in which case you may prefer:

mkdir gcc-svn && cd gcc-svn
git-svn init svn+ssh://username@gcc.gnu.org/svn/gcc/trunk
git-svn fetch

-JimC
-- 
James H. Cloos, Jr. <cloos@jhcloos.com>

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

* Re: Errors GITtifying GCC and Binutils
  2006-03-24 19:10   ` Andreas Ericsson
@ 2006-03-25 10:17     ` Jan-Benedict Glaw
  0 siblings, 0 replies; 43+ messages in thread
From: Jan-Benedict Glaw @ 2006-03-25 10:17 UTC (permalink / raw)
  To: Andreas Ericsson; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 1052 bytes --]

On Fri, 2006-03-24 20:10:55 +0100, Andreas Ericsson <ae@op5.se> wrote:
> Jan-Benedict Glaw wrote:
> >On Wed, 2006-03-22 14:33:37 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> 
> >wrote:
> >
> >Since it seems nobody looked at the GCC import run (which means to use
> >the svnimport), I ran it again, under strace control:
> 
> If you send me a bzipped tar-ball of the repo you're trying to import, 
> preferrably with all the patches to cvsps you've tried, I'll see what I 
> can do over the weekend.

It's the regular SVN-based sources of GCC at their upstream location.
In their CVS timeline, they had the repository rsync'able, but I guess
with SVN we only get access through the SVN server.

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* [PATCH] contrib/git-svn: stabilize memory usage for big fetches
  2006-03-25  8:25   ` Eric Wong
@ 2006-03-26  2:52     ` Eric Wong
  0 siblings, 0 replies; 43+ messages in thread
From: Eric Wong @ 2006-03-26  2:52 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Jan-Benedict Glaw, Eric Wong

We should be safely able to import histories with thousands
of revisions without hogging up lots of memory.

With this, we lose the ability to autocorrect mistakes when
people specify revisions in reverse, but it's probably no longer
a problem since we only have one method of log parsing nowadays.

I've added an extra check to ensure that revision numbers do
increment.

Also, increment the version number to 0.11.0.  I really should
just call it 1.0 soon...

Signed-off-by: Eric Wong <normalperson@yhbt.net>

---

 contrib/git-svn/git-svn.perl |  109 ++++++++++++++++++++++++------------------
 1 files changed, 63 insertions(+), 46 deletions(-)

c76df6617116a7d330a3110230bc3b01eaf9c66d
diff --git a/contrib/git-svn/git-svn.perl b/contrib/git-svn/git-svn.perl
index f3fc3ec..3e5733e 100755
--- a/contrib/git-svn/git-svn.perl
+++ b/contrib/git-svn/git-svn.perl
@@ -8,7 +8,7 @@ use vars qw/	$AUTHOR $VERSION
 		$GIT_SVN_INDEX $GIT_SVN
 		$GIT_DIR $REV_DIR/;
 $AUTHOR = 'Eric Wong <normalperson@yhbt.net>';
-$VERSION = '0.10.0';
+$VERSION = '0.11.0';
 $GIT_DIR = $ENV{GIT_DIR} || "$ENV{PWD}/.git";
 # make sure the svn binary gives consistent output between locales and TZs:
 $ENV{TZ} = 'UTC';
@@ -217,9 +217,8 @@ sub fetch {
 	push @log_args, '--stop-on-copy' unless $_no_stop_copy;
 
 	my $svn_log = svn_log_raw(@log_args);
-	@$svn_log = sort { $a->{revision} <=> $b->{revision} } @$svn_log;
 
-	my $base = shift @$svn_log or croak "No base revision!\n";
+	my $base = next_log_entry($svn_log) or croak "No base revision!\n";
 	my $last_commit = undef;
 	unless (-d $SVN_WC) {
 		svn_cmd_checkout($SVN_URL,$base->{revision},$SVN_WC);
@@ -234,18 +233,22 @@ sub fetch {
 	}
 	my @svn_up = qw(svn up);
 	push @svn_up, '--ignore-externals' unless $_no_ignore_ext;
-	my $last_rev = $base->{revision};
-	foreach my $log_msg (@$svn_log) {
-		assert_svn_wc_clean($last_rev, $last_commit);
-		$last_rev = $log_msg->{revision};
-		sys(@svn_up,"-r$last_rev");
+	my $last = $base;
+	while (my $log_msg = next_log_entry($svn_log)) {
+		assert_svn_wc_clean($last->{revision}, $last_commit);
+		if ($last->{revision} >= $log_msg->{revision}) {
+			croak "Out of order: last >= current: ",
+				"$last->{revision} >= $log_msg->{revision}\n";
+		}
+		sys(@svn_up,"-r$log_msg->{revision}");
 		$last_commit = git_commit($log_msg, $last_commit, @parents);
+		$last = $log_msg;
 	}
-	assert_svn_wc_clean($last_rev, $last_commit);
+	assert_svn_wc_clean($last->{revision}, $last_commit);
 	unless (-e "$GIT_DIR/refs/heads/master") {
 		sys(qw(git-update-ref refs/heads/master),$last_commit);
 	}
-	return pop @$svn_log;
+	return $last;
 }
 
 sub commit {
@@ -708,49 +711,61 @@ sub svn_commit_tree {
 	return fetch("$rev_committed=$commit")->{revision};
 }
 
+# read the entire log into a temporary file (which is removed ASAP)
+# and store the file handle + parser state
 sub svn_log_raw {
 	my (@log_args) = @_;
-	my $pid = open my $log_fh,'-|';
+	my $log_fh = IO::File->new_tmpfile or croak $!;
+	my $pid = fork;
 	defined $pid or croak $!;
-
-	if ($pid == 0) {
+	if (!$pid) {
+		open STDOUT, '>&', $log_fh or croak $!;
 		exec (qw(svn log), @log_args) or croak $!
 	}
+	waitpid $pid, 0;
+	croak if $?;
+	seek $log_fh, 0, 0 or croak $!;
+	return { state => 'sep', fh => $log_fh };
+}
+
+sub next_log_entry {
+	my $log = shift; # retval of svn_log_raw()
+	my $ret = undef;
+	my $fh = $log->{fh};
 
-	my @svn_log;
-	my $state = 'sep';
-	while (<$log_fh>) {
+	while (<$fh>) {
 		chomp;
 		if (/^\-{72}$/) {
-			if ($state eq 'msg') {
-				if ($svn_log[$#svn_log]->{lines}) {
-					$svn_log[$#svn_log]->{msg} .= $_."\n";
-					unless(--$svn_log[$#svn_log]->{lines}) {
-						$state = 'sep';
+			if ($log->{state} eq 'msg') {
+				if ($ret->{lines}) {
+					$ret->{msg} .= $_."\n";
+					unless(--$ret->{lines}) {
+						$log->{state} = 'sep';
 					}
 				} else {
 					croak "Log parse error at: $_\n",
-						$svn_log[$#svn_log]->{revision},
+						$ret->{revision},
 						"\n";
 				}
 				next;
 			}
-			if ($state ne 'sep') {
+			if ($log->{state} ne 'sep') {
 				croak "Log parse error at: $_\n",
-					"state: $state\n",
-					$svn_log[$#svn_log]->{revision},
+					"state: $log->{state}\n",
+					$ret->{revision},
 					"\n";
 			}
-			$state = 'rev';
+			$log->{state} = 'rev';
 
 			# if we have an empty log message, put something there:
-			if (@svn_log) {
-				$svn_log[$#svn_log]->{msg} ||= "\n";
-				delete $svn_log[$#svn_log]->{lines};
+			if ($ret) {
+				$ret->{msg} ||= "\n";
+				delete $ret->{lines};
+				return $ret;
 			}
 			next;
 		}
-		if ($state eq 'rev' && s/^r(\d+)\s*\|\s*//) {
+		if ($log->{state} eq 'rev' && s/^r(\d+)\s*\|\s*//) {
 			my $rev = $1;
 			my ($author, $date, $lines) = split(/\s*\|\s*/, $_, 3);
 			($lines) = ($lines =~ /(\d+)/);
@@ -758,36 +773,34 @@ sub svn_log_raw {
 					/(\d{4})\-(\d\d)\-(\d\d)\s
 					 (\d\d)\:(\d\d)\:(\d\d)\s([\-\+]\d+)/x)
 					 or croak "Failed to parse date: $date\n";
-			my %log_msg = (	revision => $rev,
+			$ret = {	revision => $rev,
 					date => "$tz $Y-$m-$d $H:$M:$S",
 					author => $author,
 					lines => $lines,
-					msg => '' );
+					msg => '' };
 			if (defined $_authors && ! defined $users{$author}) {
 				die "Author: $author not defined in ",
 						"$_authors file\n";
 			}
-			push @svn_log, \%log_msg;
-			$state = 'msg_start';
+			$log->{state} = 'msg_start';
 			next;
 		}
 		# skip the first blank line of the message:
-		if ($state eq 'msg_start' && /^$/) {
-			$state = 'msg';
-		} elsif ($state eq 'msg') {
-			if ($svn_log[$#svn_log]->{lines}) {
-				$svn_log[$#svn_log]->{msg} .= $_."\n";
-				unless (--$svn_log[$#svn_log]->{lines}) {
-					$state = 'sep';
+		if ($log->{state} eq 'msg_start' && /^$/) {
+			$log->{state} = 'msg';
+		} elsif ($log->{state} eq 'msg') {
+			if ($ret->{lines}) {
+				$ret->{msg} .= $_."\n";
+				unless (--$ret->{lines}) {
+					$log->{state} = 'sep';
 				}
 			} else {
 				croak "Log parse error at: $_\n",
-					$svn_log[$#svn_log]->{revision},"\n";
+					$ret->{revision},"\n";
 			}
 		}
 	}
-	close $log_fh or croak $?;
-	return \@svn_log;
+	return $ret;
 }
 
 sub svn_info {
@@ -1114,9 +1127,13 @@ __END__
 
 Data structures:
 
-@svn_log = array of log_msg hashes
+$svn_log hashref (as returned by svn_log_raw)
+{
+	fh => file handle of the log file,
+	state => state of the log file parser (sep/msg/rev/msg_start...)
+}
 
-$log_msg hash
+$log_msg hashref as returned by next_log_entry($svn_log)
 {
 	msg => 'whitespace-formatted log entry
 ',						# trailing newline is preserved
-- 
1.2.4.gb622a

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

end of thread, other threads:[~2006-03-26  2:53 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-22 13:33 Errors GITtifying GCC and Binutils Jan-Benedict Glaw
2006-03-22 23:39 ` Linus Torvalds
2006-03-23  0:12   ` Linus Torvalds
2006-03-23  1:28     ` Linus Torvalds
2006-03-23 20:03       ` Jan-Benedict Glaw
2006-03-23 20:42         ` Linus Torvalds
2006-03-24  0:39         ` Chris Shoemaker
2006-03-24  6:12           ` Keith Packard
2006-03-24  7:52           ` Jan-Benedict Glaw
2006-03-25  0:37             ` Chris Shoemaker
2006-03-23  6:09     ` H. Peter Anvin
2006-03-23 15:45       ` Keith Packard
2006-03-23 16:01         ` Linus Torvalds
     [not found]           ` <20060323131200.02c535b8.seanlkml@sympatico.ca>
2006-03-23 18:12             ` sean
2006-03-23 20:38               ` Linus Torvalds
2006-03-23 20:48                 ` Shawn Pearce
2006-03-23 21:11                   ` Ryan Anderson
2006-03-24  0:15                     ` Junio C Hamano
2006-03-23 23:30                   ` Junio C Hamano
2006-03-24 15:12                     ` Johannes Schindelin
2006-03-24 11:11                   ` Mark Wooding
2006-03-24 11:29                     ` Andreas Ericsson
2006-03-23 21:31                 ` David S. Miller
2006-03-23 21:48                   ` Linus Torvalds
2006-03-23 22:36                   ` Timo Hirvonen
     [not found]                 ` <20060323170515.3612dc61.seanlkml@sympatico.ca>
2006-03-23 22:05                   ` sean
2006-03-24 12:32                 ` Ralf Baechle
2006-03-24 12:59                   ` missing git features (was: Re: Errors GITtifying GCC and Binutils) Andreas Ericsson
2006-03-24 16:44                     ` Carl Worth
2006-03-24 18:55                       ` missing git features Andreas Ericsson
2006-03-23 21:02           ` Errors GITtifying GCC and Binutils Ryan Anderson
2006-03-23 21:39             ` Linus Torvalds
2006-03-23 23:51             ` Junio C Hamano
2006-03-24  0:06               ` Ryan Anderson
2006-03-24  0:34                 ` Junio C Hamano
2006-03-24 12:44   ` Ralf Baechle
2006-03-24 18:25 ` Jan-Benedict Glaw
2006-03-24 19:10   ` Andreas Ericsson
2006-03-25 10:17     ` Jan-Benedict Glaw
2006-03-24 19:35   ` Santi Béjar
2006-03-25  8:25   ` Eric Wong
2006-03-26  2:52     ` [PATCH] contrib/git-svn: stabilize memory usage for big fetches Eric Wong
2006-03-25  9:10 ` Errors GITtifying GCC and Binutils James Cloos

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