git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] rehabilitate 'git index-pack' inside the object store
@ 2008-10-21  1:17 Nicolas Pitre
  2008-10-21  5:03 ` [PATCH] (squash) add index-pack with git-dir test Junio C Hamano
  2008-10-21 14:57 ` [PATCH] rehabilitate 'git index-pack' inside the object store Nguyen Thai Ngoc Duy
  0 siblings, 2 replies; 11+ messages in thread
From: Nicolas Pitre @ 2008-10-21  1:17 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Before commit d0b92a3f6e it was possible to run 'git index-pack'
directly in the .git/objects/pack/ directory.  Restore that ability.

Signed-off-by: Nicolas Pitre <nico@cam.org>
---

diff --git a/index-pack.c b/index-pack.c
index 0a917d7..79f6fd6 100644
--- a/index-pack.c
+++ b/index-pack.c
@@ -878,10 +877,26 @@ int main(int argc, char **argv)
 	char *index_name_buf = NULL, *keep_name_buf = NULL;
 	struct pack_idx_entry **idx_objects;
 	unsigned char pack_sha1[20];
-	int nongit = 0;
 
-	setup_git_directory_gently(&nongit);
-	git_config(git_index_pack_config, NULL);
+	/*
+	 * We wish to read the repository's config file if any, and
+	 * for that it is necessary to call setup_git_directory_gently().
+	 * However if the cwd was inside .git/objects/pack/ then we need
+	 * to go back there or all the pack name arguments will be wrong.
+	 * And in that case we cannot rely on any prefix returned by 
+	 * setup_git_directory_gently() either.
+	 */
+	{
+		char cwd[PATH_MAX+1];
+		int nongit;
+
+		if (!getcwd(cwd, sizeof(cwd)-1))
+			die("Unable to get current working directory");
+		setup_git_directory_gently(&nongit);
+		git_config(git_index_pack_config, NULL);
+		if (chdir(cwd))
+			die("Cannot come back to cwd");
+	}
 
 	for (i = 1; i < argc; i++) {
 		char *arg = argv[i];

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

end of thread, other threads:[~2008-10-28 13:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-21  1:17 [PATCH] rehabilitate 'git index-pack' inside the object store Nicolas Pitre
2008-10-21  5:03 ` [PATCH] (squash) add index-pack with git-dir test Junio C Hamano
2008-10-21 14:57 ` [PATCH] rehabilitate 'git index-pack' inside the object store Nguyen Thai Ngoc Duy
2008-10-21 15:02   ` Jeff King
2008-10-21 15:54   ` Nicolas Pitre
2008-10-21 17:02   ` Johannes Schindelin
2008-10-21 17:43     ` Jeff King
2008-10-21 17:59       ` new plan for cleaning up the worktree mess, was " Johannes Schindelin
2008-10-28 13:52         ` Nguyen Thai Ngoc Duy
2008-10-22 14:04     ` Nguyen Thai Ngoc Duy
2008-10-22 14:57     ` Nguyen Thai Ngoc Duy

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