git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] Initial subproject support (RFC?)
@ 2007-04-10  4:12 Linus Torvalds
       [not found] ` <Pi ne.LNX.4.64.0704092115020.6730@woody.linux-foundation.org>
                   ` (7 more replies)
  0 siblings, 8 replies; 101+ messages in thread
From: Linus Torvalds @ 2007-04-10  4:12 UTC (permalink / raw)
  To: Git Mailing List, Junio C Hamano


Ok, the following is a series of six patches that implement some very 
low-level plumbing for what I consider sane subproject support.

NOTE! I want to make it very clear that this series of patches does not 
make subprojects "usable". They are very core plumbing that allows people 
to think about the issues, and shows how the low-level code could (and in 
my opinion, should) be done.

Some of the early patches are just cleanups and very basic stuff required 
to actually get to the meat of it all. I actually think that they are all 
in a state where they could be applied, if only because they don't 
actually really *do* anything unless you start generating index files 
entries (and trees) that have the "gitlink" entries in them.

I've actually done some testing with a repository that has these kinds of 
subproject pointers in them, and no, it's really not fully fleshed out 
yet, but yes, I can actually do a commit in one of the subprojects, and 
when I do that, the "raw" diff literally looks like this:

	[torvalds@woody superproject]$ git diff --raw
	:160000 160000 5813084832d3c680a3436b0253639c94ed55445d 0000000... M    sub-B

and I can do a "git commit -a" in the superproject to commit the new 
state.

NOTE! This series of six patches does not actually contain everything you 
need to do that - in particular, this series will not actually connect up 
the magic to make "git add" (and thus "git commit") actually create the 
gitlink entries for subprojects. That's another (quite small) patch, but I 
haven't cleaned it up enough to be submittable yet.

I split my original larger patch up into more manageable pieces, so that 
you should be able to actually just read the patches themselves and get a 
reasonable idea about what it's doing, even *without* actually testing it. 
And obviously, "make test" still completes happily, if only because none 
of the tests actually trigger any of the new code.

The patches are all fairly small, and the two first ones are really just 
totally independent cleanups/fixes:

 - diff-lib: use ce_mode_from_stat() rather than messing with modes manually:

	 diff-lib.c |   15 +++------------
	 1 files changed, 3 insertions(+), 12 deletions(-)

 - Avoid overflowing name buffer in deep directory structures:

	 dir.c |    3 +++
	 1 files changed, 3 insertions(+), 0 deletions(-)

 - Add 'resolve_gitlink_ref()' helper function:

	 refs.c |   79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	 refs.h |    3 ++
	 2 files changed, 82 insertions(+), 0 deletions(-)

 - Add "S_IFDIRLNK" file mode infrastructure for git links:

	 cache.h |   20 +++++++++++++++++++-
	 1 files changed, 19 insertions(+), 1 deletions(-)

 - Teach "fsck" not to follow subproject links:

	 builtin-fsck.c |    9 ++++++++-
	 tree.c         |   15 ++++++++++++++-
	 2 files changed, 22 insertions(+), 2 deletions(-)

 - Teach core object handling functions about gitlinks:

	 builtin-ls-tree.c |   20 +++++++++++++++++++-
	 cache-tree.c      |    2 +-
	 read-cache.c      |   35 +++++++++++++++++++++++++++++++----
	 sha1_file.c       |    3 +++
	 4 files changed, 54 insertions(+), 6 deletions(-)

and will follow in the next few emails..

			Linus

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

end of thread, other threads:[~2007-04-15 23:25 UTC | newest]

Thread overview: 101+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-10  4:12 [PATCH 0/6] Initial subproject support (RFC?) Linus Torvalds
     [not found] ` <Pi ne.LNX.4.64.0704092115020.6730@woody.linux-foundation.org>
2007-04-10  4:13 ` [PATCH 1/6] diff-lib: use ce_mode_from_stat() rather than messing with modes manually Linus Torvalds
2007-04-10  4:13 ` [PATCH 2/6] Avoid overflowing name buffer in deep directory structures Linus Torvalds
2007-04-10  4:14 ` [PATCH 3/6] Add 'resolve_gitlink_ref()' helper function Linus Torvalds
2007-04-10  9:38   ` Alex Riesen
2007-04-10 14:58     ` Linus Torvalds
2007-04-10 15:35       ` Alex Riesen
2007-04-10 15:52         ` Linus Torvalds
2007-04-10 15:57           ` Alex Riesen
2007-04-10 16:16             ` Linus Torvalds
2007-04-10 15:54       ` Josef Weidendorfer
2007-04-10  4:14 ` [PATCH 4/6] Add "S_IFDIRLNK" file mode infrastructure for git links Linus Torvalds
2007-04-10  4:15 ` [PATCH 5/6] Teach "fsck" not to follow subproject links Linus Torvalds
2007-04-11 22:41   ` Sam Vilain
2007-04-11 22:48     ` Linus Torvalds
2007-04-11 22:59       ` Sam Vilain
2007-04-11 23:16         ` Linus Torvalds
2007-04-11 23:05           ` David Lang
2007-04-11 23:53             ` Linus Torvalds
2007-04-11 23:30               ` David Lang
2007-04-12  2:14                 ` Linus Torvalds
2007-04-12  2:30                   ` Junio C Hamano
2007-04-12 17:18                   ` David Lang
2007-04-12 18:32                   ` Dana How
2007-04-12 19:17                     ` Linus Torvalds
2007-04-13  9:00                       ` Rogan Dawes
2007-04-13 15:23                         ` Linus Torvalds
2007-04-15  6:50                       ` Dana How
2007-04-12  0:00               ` Dana How
2007-04-12  0:03               ` Sam Vilain
2007-04-12  0:34           ` Junio C Hamano
2007-04-12  1:52             ` Linus Torvalds
2007-04-12  2:00               ` Junio C Hamano
2007-04-12  2:06                 ` Junio C Hamano
2007-04-12  2:28                   ` Linus Torvalds
2007-04-11 23:30         ` Dana How
2007-04-10  4:20 ` [PATCH 6/6] Teach core object handling functions about gitlinks Linus Torvalds
2007-04-10  8:40   ` Frank Lichtenheld
2007-04-10 11:31     ` Alex Riesen
2007-04-10 14:55     ` Linus Torvalds
2007-04-10 16:28   ` Josef Weidendorfer
2007-04-10 16:50     ` Alex Riesen
2007-04-10 17:23       ` Josef Weidendorfer
2007-04-10 18:45     ` Linus Torvalds
2007-04-10 19:04       ` Andy Parkins
2007-04-10 19:20         ` Linus Torvalds
2007-04-10 20:19           ` Junio C Hamano
2007-04-10 20:33             ` Linus Torvalds
2007-04-12  0:12               ` Sam Vilain
2007-04-12  0:35                 ` Martin Waitz
2007-04-12  2:01                 ` Linus Torvalds
2007-04-12  3:56                   ` Sam Vilain
2007-04-10 19:41         ` David Lang
2007-04-10 20:06         ` Junio C Hamano
2007-04-10 19:29       ` Josef Weidendorfer
2007-04-10 19:45         ` Linus Torvalds
2007-04-11 23:47           ` Sam Vilain
2007-04-12  0:13             ` Linus Torvalds
2007-04-12  0:42       ` Torgil Svensson
2007-04-12  0:56         ` Martin Waitz
2007-04-12 21:23           ` Torgil Svensson
2007-04-11 23:36     ` Sam Vilain
2007-04-11  8:06   ` Martin Waitz
2007-04-11  8:29     ` Alex Riesen
2007-04-11  8:36       ` Martin Waitz
2007-04-11  8:49         ` Alex Riesen
2007-04-11  9:20           ` Martin Waitz
2007-04-11  9:15         ` Junio C Hamano
2007-04-11 10:03           ` Martin Waitz
2007-04-11 20:01             ` Junio C Hamano
2007-04-11 22:19               ` Martin Waitz
2007-04-11 22:36                 ` Linus Torvalds
2007-04-11  9:47     ` Andy Parkins
2007-04-11 11:31       ` Martin Waitz
2007-04-11 15:16     ` Linus Torvalds
2007-04-11 22:49       ` Sam Vilain
2007-04-11 23:54       ` Martin Waitz
2007-04-12  1:57         ` Brian Gernhardt
2007-04-12 15:12         ` Josef Weidendorfer
2007-04-10  4:46 ` [PATCH 0/6] Initial subproject support (RFC?) Linus Torvalds
2007-04-10 13:04   ` Alex Riesen
2007-04-10 15:13     ` Linus Torvalds
2007-04-10 15:48       ` Alex Riesen
2007-04-10 16:07         ` Linus Torvalds
2007-04-10 16:43           ` Alex Riesen
2007-04-10 19:32           ` Junio C Hamano
2007-04-10 20:11             ` Linus Torvalds
2007-04-10 20:52               ` Junio C Hamano
2007-04-10 21:02                 ` Sam Ravnborg
2007-04-10 21:27                   ` Junio C Hamano
2007-04-10 21:03                 ` Nicolas Pitre
2007-04-15 23:21                   ` J. Bruce Fields
2007-04-11  8:08                 ` David Kågedal
2007-04-11  9:32                   ` Junio C Hamano
2007-04-15 23:25                     ` J. Bruce Fields
2007-04-11  8:32     ` Martin Waitz
2007-04-11  8:42       ` Alex Riesen
2007-04-11  8:57         ` Martin Waitz
2007-04-10 13:39   ` [PATCH] allow git-update-index work on subprojects Alex Riesen
2007-04-10 23:19     ` [PATCH] Allow " Alex Riesen
2007-04-11  2:55       ` Junio C Hamano

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