On 4/10/07, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
On Mon, 9 Apr 2007, Linus Torvalds wrote: > > 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. Here is, for your enjoyment, the last patch I used to actually test this all. I do *not* submit it as a patch for actual inclusion - the other patches in the series are, I think, ready to actually be merged. This one is not. It's broken for a few reasons: - it allows you to do "git add subproject" to add the subproject to the index (and then use "git commit" to commit it), but even something as simple as "git commit -a" doesn't work right, because the sequence that "git commit -a" uses to update the index doesn't work with the current state of the plumbing (ie the git-diff-files --name-only -z | git-update-index --remove -z --stdin
At least git-update-index should work. --- builtin-update-index.c | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/builtin-update-index.c b/builtin-update-index.c index 47d42ed..55c9f93 100644 --- a/builtin-update-index.c +++ b/builtin-update-index.c @@ -94,12 +94,10 @@ static int process_file(const char *path) path); } } - if (0 == status) - return error("%s: is a directory - add files inside instead", - path); - else + if (status) return error("lstat(\"%s\"): %s", path, strerror(errno)); + /* could be a subproject */ } namelen = strlen(path); @@ -211,7 +209,7 @@ static void update_one(const char *path, const char *prefix, int prefix_length) goto free_return; } if (process_file(p)) - die("Unable to process file %s", path); + die("Unable to process \"%s\"", path); report("add '%s'", path); free_return: if (p < path || p > path + strlen(path)) -- 1.5.1.147.gbaa5
From 252adc55f9a8a7ee36be1abf76d8511d6f12d4f3 Mon Sep 17 00:00:00 2001 From: Alex Riesen <ariesen@xxxxxxxxxxxxxxxx> Date: Tue, 10 Apr 2007 15:19:30 +0200 Subject: [PATCH] allow git-update-index work on subprojects --- builtin-update-index.c | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/builtin-update-index.c b/builtin-update-index.c index 47d42ed..55c9f93 100644 --- a/builtin-update-index.c +++ b/builtin-update-index.c @@ -94,12 +94,10 @@ static int process_file(const char *path) path); } } - if (0 == status) - return error("%s: is a directory - add files inside instead", - path); - else + if (status) return error("lstat(\"%s\"): %s", path, strerror(errno)); + /* could be a subproject */ } namelen = strlen(path); @@ -211,7 +209,7 @@ static void update_one(const char *path, const char *prefix, int prefix_length) goto free_return; } if (process_file(p)) - die("Unable to process file %s", path); + die("Unable to process \"%s\"", path); report("add '%s'", path); free_return: if (p < path || p > path + strlen(path)) -- 1.5.1.147.gbaa5