* [PATCH] checkout-index needs a working tree
@ 2007-08-04 22:20 Johannes Schindelin
2007-08-04 22:50 ` Junio C Hamano
2007-08-09 22:35 ` Uwe Kleine-König
0 siblings, 2 replies; 12+ messages in thread
From: Johannes Schindelin @ 2007-08-04 22:20 UTC (permalink / raw)
To: gitster, git
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
This fixes "git --work-tree=/some/where/else checkout-index".
git.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/git.c b/git.c
index 25b8274..f8c4545 100644
--- a/git.c
+++ b/git.c
@@ -315,7 +315,8 @@ static void handle_internal_command(int argc, const char **argv)
{ "branch", cmd_branch, RUN_SETUP },
{ "bundle", cmd_bundle },
{ "cat-file", cmd_cat_file, RUN_SETUP },
- { "checkout-index", cmd_checkout_index, RUN_SETUP },
+ { "checkout-index", cmd_checkout_index,
+ RUN_SETUP | NEED_WORK_TREE},
{ "check-ref-format", cmd_check_ref_format },
{ "check-attr", cmd_check_attr, RUN_SETUP | NEED_WORK_TREE },
{ "cherry", cmd_cherry, RUN_SETUP },
--
1.5.3.rc4.1.g7805
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] checkout-index needs a working tree
2007-08-04 22:20 [PATCH] checkout-index needs a working tree Johannes Schindelin
@ 2007-08-04 22:50 ` Junio C Hamano
2007-08-05 1:33 ` Johannes Schindelin
2007-08-09 22:35 ` Uwe Kleine-König
1 sibling, 1 reply; 12+ messages in thread
From: Junio C Hamano @ 2007-08-04 22:50 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
Hmmph. I was trying to come up with a better commit log message
for this change.
Paths given from the command line of checkout-index name
files relative to the cwd, whose implication is that it
is relative to where you are in relation with the top of
the working tree. For doing that, you need to have the
work tree to begin with.
Does this mean that any command that uses its prefix parameter
to cmd_xxx() needs NEED_WORK_TREE?
I wonder if it would help us to catch similar breakages if we
change git.c::run_command() so that we do not pass prefix (or
pass a bogus pointer ((const char *)1)) for commands that do not
ask for NEED_WORK_TREE.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] checkout-index needs a working tree
2007-08-04 22:50 ` Junio C Hamano
@ 2007-08-05 1:33 ` Johannes Schindelin
0 siblings, 0 replies; 12+ messages in thread
From: Johannes Schindelin @ 2007-08-05 1:33 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hi,
On Sat, 4 Aug 2007, Junio C Hamano wrote:
> I wonder if it would help us to catch similar breakages if we change
> git.c::run_command() so that we do not pass prefix (or pass a bogus
> pointer ((const char *)1)) for commands that do not ask for
> NEED_WORK_TREE.
I tried that, but we have some places where we ask "if (prefix &&
*prefix)", for example in ls-tree. It does not _require_ a work tree, but
it certainly uses it when it is available -- which is fine.
Other users are more tricky, such as ls-files and update-index, which need
a working tree only in some cases.
I'll probably write a patch on Monday (if nobody else is faster) to
provide a function "require_work_tree()" in environment.c, which does the
obvious (with caching). Then comes the tedious part: identifying all
those options that need a working tree...
Ciao,
Dscho
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] checkout-index needs a working tree
2007-08-04 22:20 [PATCH] checkout-index needs a working tree Johannes Schindelin
2007-08-04 22:50 ` Junio C Hamano
@ 2007-08-09 22:35 ` Uwe Kleine-König
2007-08-10 0:31 ` Johannes Schindelin
1 sibling, 1 reply; 12+ messages in thread
From: Uwe Kleine-König @ 2007-08-09 22:35 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: gitster, git
Johannes Schindelin wrote:
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
>
> This fixes "git --work-tree=/some/where/else checkout-index".
>
> git.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/git.c b/git.c
> index 25b8274..f8c4545 100644
> --- a/git.c
> +++ b/git.c
> @@ -315,7 +315,8 @@ static void handle_internal_command(int argc, const char **argv)
> { "branch", cmd_branch, RUN_SETUP },
> { "bundle", cmd_bundle },
> { "cat-file", cmd_cat_file, RUN_SETUP },
> - { "checkout-index", cmd_checkout_index, RUN_SETUP },
> + { "checkout-index", cmd_checkout_index,
> + RUN_SETUP | NEED_WORK_TREE},
> { "check-ref-format", cmd_check_ref_format },
> { "check-attr", cmd_check_attr, RUN_SETUP | NEED_WORK_TREE },
> { "cherry", cmd_cherry, RUN_SETUP },
With this patch I'm not able to do
git checkout-index --prefix=/tmp/exportdir -a
to export an entire tree as described in git-checkout-index(1) in a bare
repo.
(Not that I need it, but I claimed on #git that it works, ... )
BTW: I didn't try if reverting this patch helps, but probably it does.
Best regards
Uwe
--
Uwe Kleine-König
http://www.google.com/search?q=72+PS+point+in+inch
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] checkout-index needs a working tree
2007-08-09 22:35 ` Uwe Kleine-König
@ 2007-08-10 0:31 ` Johannes Schindelin
2007-08-10 0:55 ` Junio C Hamano
0 siblings, 1 reply; 12+ messages in thread
From: Johannes Schindelin @ 2007-08-10 0:31 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: gitster, git
Hi,
On Fri, 10 Aug 2007, Uwe Kleine-K?nig wrote:
> Johannes Schindelin wrote:
> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > ---
> >
> > This fixes "git --work-tree=/some/where/else checkout-index".
> >
> > git.c | 3 ++-
> > 1 files changed, 2 insertions(+), 1 deletions(-)
> >
> > diff --git a/git.c b/git.c
> > index 25b8274..f8c4545 100644
> > --- a/git.c
> > +++ b/git.c
> > @@ -315,7 +315,8 @@ static void handle_internal_command(int argc, const char **argv)
> > { "branch", cmd_branch, RUN_SETUP },
> > { "bundle", cmd_bundle },
> > { "cat-file", cmd_cat_file, RUN_SETUP },
> > - { "checkout-index", cmd_checkout_index, RUN_SETUP },
> > + { "checkout-index", cmd_checkout_index,
> > + RUN_SETUP | NEED_WORK_TREE},
> > { "check-ref-format", cmd_check_ref_format },
> > { "check-attr", cmd_check_attr, RUN_SETUP | NEED_WORK_TREE },
> > { "cherry", cmd_cherry, RUN_SETUP },
> With this patch I'm not able to do
>
> git checkout-index --prefix=/tmp/exportdir -a
>
> to export an entire tree as described in git-checkout-index(1) in a bare
> repo.
That is _completely_ expected. If it is a bare repository, you can _only_
override that check by GIT_WORK_TREE or --work-tree.
But I have to wonder: if you want to use git checkout-index, which is a
work-tree operation, why did you mark it as bare to begin with?
Ciao,
Dscho
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] checkout-index needs a working tree
2007-08-10 0:31 ` Johannes Schindelin
@ 2007-08-10 0:55 ` Junio C Hamano
2007-08-10 1:11 ` Johannes Schindelin
0 siblings, 1 reply; 12+ messages in thread
From: Junio C Hamano @ 2007-08-10 0:55 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Uwe Kleine-König, git
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> That is _completely_ expected. If it is a bare repository, you can _only_
> override that check by GIT_WORK_TREE or --work-tree.
>
> But I have to wonder: if you want to use git checkout-index, which is a
> work-tree operation, why did you mark it as bare to begin with?
I do not necessarily think --prefix=untar/it/here/ is a work
tree operation.
Perhaps we probably are better off if we add something that says
specifying GIT_DIR alone means you are at the top of work tree
(to resurrect the traditional behaviour), to alleviate fallouts
like this and the other cvsserver one? If one does not like
that traditional behaviour, the new GIT_WORK_TREE support can
be used override it.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] checkout-index needs a working tree
2007-08-10 0:55 ` Junio C Hamano
@ 2007-08-10 1:11 ` Johannes Schindelin
2007-08-10 7:57 ` [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset Junio C Hamano
0 siblings, 1 reply; 12+ messages in thread
From: Johannes Schindelin @ 2007-08-10 1:11 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Uwe Kleine-König, git
Hi,
On Thu, 9 Aug 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > That is _completely_ expected. If it is a bare repository, you can _only_
> > override that check by GIT_WORK_TREE or --work-tree.
> >
> > But I have to wonder: if you want to use git checkout-index, which is a
> > work-tree operation, why did you mark it as bare to begin with?
>
> I do not necessarily think --prefix=untar/it/here/ is a work
> tree operation.
>
> Perhaps we probably are better off if we add something that says
> specifying GIT_DIR alone means you are at the top of work tree
> (to resurrect the traditional behaviour), to alleviate fallouts
> like this and the other cvsserver one? If one does not like
> that traditional behaviour, the new GIT_WORK_TREE support can
> be used override it.
I think I sent a patch for that, but was negative about it, even if I
promised not to question your decision.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset
2007-08-10 1:11 ` Johannes Schindelin
@ 2007-08-10 7:57 ` Junio C Hamano
2007-08-10 11:28 ` Uwe Kleine-König
0 siblings, 1 reply; 12+ messages in thread
From: Junio C Hamano @ 2007-08-10 7:57 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Uwe Kleine-König, git
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Date: Sun, 5 Aug 2007 14:12:53 +0100
The old behaviour was to unilaterally default to the cwd is the work tree
when GIT_DIR was set, but GIT_WORK_TREE wasn't, no matter if we are inside
the GIT_DIR, or if GIT_DIR is actually something like ../../../.git.
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> I think I sent a patch for that, but was negative about it, even if I
> promised not to question your decision.
Yes you did. Here is a refresher with an affected test
adjusted.
We already have a few changes that worked around the semantics
change by either setting GIT_WORK_TREE or cd'ing up, but I
think they should not need to be reverted.
It makes more sense to keep the old semantics -- people who use
unusual GIT_DIR setting should know what they are doing, and
the new GIT_WORK_TREE feature (and core.worktree) would give
them better control. We just should not break existing users
that set GIT_DIR and nothing else. Which means I need another
rewrite on the Release Notes, and probably yet another rc
cycle.
setup.c | 52 +++++++++----------------------------------------
t/t1500-rev-parse.sh | 6 +++-
2 files changed, 14 insertions(+), 44 deletions(-)
diff --git a/setup.c b/setup.c
index b55b82c..06004f1 100644
--- a/setup.c
+++ b/setup.c
@@ -189,53 +189,21 @@ int is_inside_work_tree(void)
}
/*
- * If no worktree was given, and we are outside of a default work tree,
- * now is the time to set it.
- *
- * In other words, if the user calls git with something like
- *
- * git --git-dir=/some/where/else/.git bla
- *
- * default to /some/where/else as working directory; if the specified
- * git-dir does not end in "/.git", the cwd is used as working directory.
+ * set_work_tree() is only ever called if you set GIT_DIR explicitely.
+ * The old behaviour (which we retain here) is to set the work tree root
+ * to the cwd, unless overridden by the config, the command line, or
+ * GIT_WORK_TREE.
*/
-const char *set_work_tree(const char *dir)
+static const char *set_work_tree(const char *dir)
{
- char dir_buffer[PATH_MAX], *rel = NULL;
- static char buffer[PATH_MAX + 1];
- int len, suffix_len = strlen(DEFAULT_GIT_DIR_ENVIRONMENT) + 1;
-
- /* strip the variable 'dir' of the postfix "/.git" if it has it */
- len = strlen(dir);
- if (len > suffix_len &&
- !strcmp(dir + len - suffix_len, "/" DEFAULT_GIT_DIR_ENVIRONMENT)) {
- if ((len - suffix_len) >= sizeof(dir_buffer))
- die("directory name too long");
- memcpy(dir_buffer, dir, len - suffix_len);
- dir_buffer[len - suffix_len] = '\0';
-
- /* are we inside the default work tree? */
- rel = get_relative_cwd(buffer, sizeof(buffer), dir_buffer);
- }
+ char buffer[PATH_MAX + 1];
- /* if rel is set, the cwd is _not_ the current working tree */
- if (rel && *rel) {
- if (!is_absolute_path(dir))
- set_git_dir(make_absolute_path(dir));
- dir = dir_buffer;
- if (chdir(dir))
- die("cannot chdir to %s: %s", dir, strerror(errno));
- else
- strcat(rel, "/");
- inside_git_dir = 0;
- } else {
- rel = NULL;
- dir = getcwd(buffer, sizeof(buffer));
- }
- git_work_tree_cfg = xstrdup(dir);
+ if (!getcwd(buffer, sizeof(buffer)))
+ die ("Could not get the current working directory");
+ git_work_tree_cfg = xstrdup(buffer);
inside_work_tree = 1;
- return rel;
+ return NULL;
}
/*
diff --git a/t/t1500-rev-parse.sh b/t/t1500-rev-parse.sh
index bea40cb..e474b3f 100755
--- a/t/t1500-rev-parse.sh
+++ b/t/t1500-rev-parse.sh
@@ -28,6 +28,8 @@ test_rev_parse() {
[ $# -eq 0 ] && return
}
+# label is-bare is-inside-git is-inside-work prefix
+
test_rev_parse toplevel false false true ''
cd .git || exit 1
@@ -53,13 +55,13 @@ export GIT_DIR=../.git
export GIT_CONFIG="$(pwd)"/../.git/config
git config core.bare false
-test_rev_parse 'GIT_DIR=../.git, core.bare = false' false false true work/
+test_rev_parse 'GIT_DIR=../.git, core.bare = false' false false true ''
git config core.bare true
test_rev_parse 'GIT_DIR=../.git, core.bare = true' true false false ''
git config --unset core.bare
-test_rev_parse 'GIT_DIR=../.git, core.bare undefined' false false true work/
+test_rev_parse 'GIT_DIR=../.git, core.bare undefined' false false true ''
mv ../.git ../repo.git || exit 1
export GIT_DIR=../repo.git
--
1.5.3.rc4.29.g74276
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset
2007-08-10 7:57 ` [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset Junio C Hamano
@ 2007-08-10 11:28 ` Uwe Kleine-König
2007-08-10 19:26 ` Junio C Hamano
0 siblings, 1 reply; 12+ messages in thread
From: Uwe Kleine-König @ 2007-08-10 11:28 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Johannes Schindelin, git
Hello Junio,
Junio C Hamano wrote:
> From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> Date: Sun, 5 Aug 2007 14:12:53 +0100
>
> The old behaviour was to unilaterally default to the cwd is the work tree
> when GIT_DIR was set, but GIT_WORK_TREE wasn't, no matter if we are inside
> the GIT_DIR, or if GIT_DIR is actually something like ../../../.git.
>
> Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > I think I sent a patch for that, but was negative about it, even if I
> > promised not to question your decision.
>
> Yes you did. Here is a refresher with an affected test
> adjusted.
>
> We already have a few changes that worked around the semantics
> change by either setting GIT_WORK_TREE or cd'ing up, but I
> think they should not need to be reverted.
>
> It makes more sense to keep the old semantics -- people who use
> unusual GIT_DIR setting should know what they are doing, and
> the new GIT_WORK_TREE feature (and core.worktree) would give
> them better control. We just should not break existing users
> that set GIT_DIR and nothing else. Which means I need another
> rewrite on the Release Notes, and probably yet another rc
> cycle.
I don't know if you planed to make
git checkout-index --prefix=/tmp/tra -a
work (again) in a bare repo. Probably not, so it's no surprise that it
still doesn't work.
Best regards
Uwe
--
Uwe Kleine-König
cat /*dev/null; echo 'Hello World!';
cat > /dev/null <<*/
() { } int main() { printf("Hello World!\n");}
/* */
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset
2007-08-10 11:28 ` Uwe Kleine-König
@ 2007-08-10 19:26 ` Junio C Hamano
2007-08-11 5:17 ` Junio C Hamano
0 siblings, 1 reply; 12+ messages in thread
From: Junio C Hamano @ 2007-08-10 19:26 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: Johannes Schindelin, git
Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> writes:
> I don't know if you planed to make
>
> git checkout-index --prefix=/tmp/tra -a
>
> work (again) in a bare repo. Probably not, so it's no surprise that it
> still doesn't work.
I think it is now safe to revert that NEED_WORK_TREE change
in git.c for checkout-index.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset
2007-08-10 19:26 ` Junio C Hamano
@ 2007-08-11 5:17 ` Junio C Hamano
2007-08-11 18:15 ` [PATCH] checkout-index doc: use --work-dir in the export example Uwe Kleine-König
0 siblings, 1 reply; 12+ messages in thread
From: Junio C Hamano @ 2007-08-11 5:17 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: Johannes Schindelin, git
Subject: [PATCH] Revert 4465f410 and add tests
checkout-index --prefix=<path> does not need a working tree,
even when run from inside a bare repository.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
Junio C Hamano <gitster@pobox.com> writes:
> Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> writes:
>
>> I don't know if you planed to make
>>
>> git checkout-index --prefix=/tmp/tra -a
>>
>> work (again) in a bare repo. Probably not, so it's no surprise that it
>> still doesn't work.
>
> I think it is now safe to revert that NEED_WORK_TREE change
> in git.c for checkout-index.
How does this look? I think the second test (no GIT_DIR, just
being in a bare repository and specifying --prefix to redirect
the output elsewhere) never worked even before the current
work-tree feature was started (none of v1.4.4.4, v1.5.0, nor
v1.5.2 worked that way), so this is not even "work again", but
more like "now works". Later tests with exported GIT_DIR would
work with or without reverting the NEED_WORK_TREE change in
git.c, so in that sense reverting is probably not such a good
idea to begin with. I dunno.
git.c | 3 +-
t/t2008-checkout-index-prefix.sh | 78 ++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+), 2 deletions(-)
create mode 100755 t/t2008-checkout-index-prefix.sh
diff --git a/git.c b/git.c
index f8c4545..bafbb4b 100644
--- a/git.c
+++ b/git.c
@@ -315,8 +315,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "branch", cmd_branch, RUN_SETUP },
{ "bundle", cmd_bundle },
{ "cat-file", cmd_cat_file, RUN_SETUP },
- { "checkout-index", cmd_checkout_index,
- RUN_SETUP | NEED_WORK_TREE},
+ { "checkout-index", cmd_checkout_index, RUN_SETUP},
{ "check-ref-format", cmd_check_ref_format },
{ "check-attr", cmd_check_attr, RUN_SETUP | NEED_WORK_TREE },
{ "cherry", cmd_cherry, RUN_SETUP },
diff --git a/t/t2008-checkout-index-prefix.sh b/t/t2008-checkout-index-prefix.sh
new file mode 100755
index 0000000..7727f07
--- /dev/null
+++ b/t/t2008-checkout-index-prefix.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+test_description='checkout-index --prefix=foo/'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+
+ mkdir filfre &&
+ >frotz &&
+ >filfre/nitfol &&
+ git update-index --add frotz filfre/nitfol
+
+'
+
+rm -fr f*
+
+mv .git repo.git || exit ;# very bad
+GIT_DIR="$(pwd)/repo.git"
+GIT_CONFIG="$GIT_DIR/config" git config core.bare true
+
+test_expect_success 'checkout with --prefix' '
+
+ (
+ cd repo.git &&
+ git checkout-index --prefix=../f- -a
+ ) &&
+ test -f f-frotz &&
+ test -d f-filfre &&
+ test -f f-filfre/nitfol
+
+'
+
+export GIT_DIR
+
+rm -fr f*
+
+test_expect_success 'checkout with --prefix and GIT_DIR (0)' '
+
+ (
+ cd repo.git &&
+ git checkout-index --prefix=../f/ -a
+ ) &&
+ test -d f &&
+ test -f f/frotz &&
+ test -d f/filfre &&
+ test -f f/filfre/nitfol
+
+'
+
+rm -fr f*
+
+test_expect_success 'checkout with --prefix and GIT_DIR (1)' '
+
+ git checkout-index --prefix=f/ -a &&
+ test -d f &&
+ test -f f/frotz &&
+ test -d f/filfre &&
+ test -f f/filfre/nitfol
+
+'
+
+rm -fr f*
+
+test_expect_success 'checkout with --prefix and GIT_DIR (2)' '
+
+ mkdir f &&
+ (
+ cd f && git checkout-index --prefix=../f1/ -a
+ ) &&
+ test -d f1 &&
+ test -f f1/frotz &&
+ test -d f1/filfre &&
+ test -f f1/filfre/nitfol
+
+'
+
+test_done
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH] checkout-index doc: use --work-dir in the export example
2007-08-11 5:17 ` Junio C Hamano
@ 2007-08-11 18:15 ` Uwe Kleine-König
0 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2007-08-11 18:15 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Johannes Schindelin, git, Uwe Kleine-König
The old example used --prefix=.../ to teach the reader that the trailing
slash is important. This lesson just moved down to the next example,
without a real example though.
Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
---
Hello Junio,
even if you revert 4465f410 (and add the tests) I'd prefer using
--work-tree.
Best regards
Uwe
Documentation/git-checkout-index.txt | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/Documentation/git-checkout-index.txt b/Documentation/git-checkout-index.txt
index b1a8ce1..7c19351 100644
--- a/Documentation/git-checkout-index.txt
+++ b/Documentation/git-checkout-index.txt
@@ -143,21 +143,16 @@ $ git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh
----------------
Using `git-checkout-index` to "export an entire tree"::
- The prefix ability basically makes it trivial to use
- `git-checkout-index` as an "export as tree" function.
- Just read the desired tree into the index, and do:
+ Just read the desired tree into the index, make sure
+ git-export-dir exists, and do:
+
----------------
-$ git-checkout-index --prefix=git-export-dir/ -a
+$ git --work-dir=git-export-dir checkout-index -a
----------------
+
`git-checkout-index` will "export" the index into the specified
directory.
+
-The final "/" is important. The exported name is literally just
-prefixed with the specified string. Contrast this with the
-following example.
-
Export files with a prefix::
+
----------------
@@ -165,7 +160,9 @@ $ git-checkout-index --prefix=.merged- Makefile
----------------
+
This will check out the currently cached copy of `Makefile`
-into the file `.merged-Makefile`.
+into the file `.merged-Makefile`. The argument of --prefix is
+literally just prefixed with the specified string, so if you want to
+export to a directory you must end the prefix with a slash.
Author
--
1.5.3.rc4.857.ge22ff
^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2007-08-11 18:15 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-04 22:20 [PATCH] checkout-index needs a working tree Johannes Schindelin
2007-08-04 22:50 ` Junio C Hamano
2007-08-05 1:33 ` Johannes Schindelin
2007-08-09 22:35 ` Uwe Kleine-König
2007-08-10 0:31 ` Johannes Schindelin
2007-08-10 0:55 ` Junio C Hamano
2007-08-10 1:11 ` Johannes Schindelin
2007-08-10 7:57 ` [PATCH] Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset Junio C Hamano
2007-08-10 11:28 ` Uwe Kleine-König
2007-08-10 19:26 ` Junio C Hamano
2007-08-11 5:17 ` Junio C Hamano
2007-08-11 18:15 ` [PATCH] checkout-index doc: use --work-dir in the export example Uwe Kleine-König
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).