git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* bug: git-stash save and symbolic links
@ 2008-10-20  8:34 Simon Strandgaard
  2008-10-20 15:17 ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Strandgaard @ 2008-10-20  8:34 UTC (permalink / raw)
  To: git

git-stash cannot find the repository when the path is a symbolic link.
solution for me was to cd to the absolute path and then do git-stash.

FAILURE: git-stash with symbolic link.

prompt> pwd
/Users/neoneye/st
prompt> ls -la ~/st
lrwxr-xr-x  1 neoneye  neoneye  38 10 Okt 07:40 /Users/neoneye/st ->
/Users/neoneye/git/code/source_toolbox
prompt> git-stash
fatal: Not a git repository
fatal: Not a git repository
fatal: Not a git repository
You do not have the initial commit yet
prompt>


SUCCESS: git-stash without symbolic link.

prompt> pwd
/Users/neoneye/git/code
prompt> ls -la
drwxr-xr-x  16 neoneye  neoneye   544 20 Okt 10:18 .git
drwxr-xr-x  29 neoneye  neoneye   986 16 Okt 13:04 source_toolbox
prompt> git stash save "did I mess up"
Saved working directory and index state "On master: did I mess up"
HEAD is now at 90ac45d we can now seek through a WAV file.. finally.
prompt>


I think the problem is located in the save_stash() function, but
im not good at sh scripting to make a patch.



Thank you very much for git!


-- 
Simon Strandgaard
http://toolboxapp.com/

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

* Re: bug: git-stash save and symbolic links
  2008-10-20  8:34 bug: git-stash save and symbolic links Simon Strandgaard
@ 2008-10-20 15:17 ` Jeff King
  2008-10-20 15:32   ` Simon Strandgaard
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff King @ 2008-10-20 15:17 UTC (permalink / raw)
  To: Simon Strandgaard; +Cc: git

On Mon, Oct 20, 2008 at 10:34:53AM +0200, Simon Strandgaard wrote:

> git-stash cannot find the repository when the path is a symbolic link.
> solution for me was to cd to the absolute path and then do git-stash.

Sorry, I can't reproduce here, using this test:

    mkdir repo &&
    cd repo &&
      git init &&
      echo content >file &&
      git add file &&
      git commit -m one &&
    cd .. &&
      ln -s repo linked &&
    cd repo &&
      echo cruft >>file &&
      git stash &&
      echo non-linked directory stashed ok &&
    cd ../linked &&
      echo cruft >>file &&
      git stash &&
      echo linked directory stashed ok

What version of git are you running (though I tried a few different
ones, and all passed my test)?

-Peff

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

* Re: bug: git-stash save and symbolic links
  2008-10-20 15:17 ` Jeff King
@ 2008-10-20 15:32   ` Simon Strandgaard
  2008-10-20 15:39     ` Simon Strandgaard
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Strandgaard @ 2008-10-20 15:32 UTC (permalink / raw)
  To: Jeff King; +Cc: git

On Mon, Oct 20, 2008 at 5:17 PM, Jeff King <peff@peff.net> wrote:
> On Mon, Oct 20, 2008 at 10:34:53AM +0200, Simon Strandgaard wrote:
[snip]
> What version of git are you running (though I tried a few different
> ones, and all passed my test)?


I have made some changes, so it can be reproduced

prompt> sh run.sh
Initialized empty Git repository in /Users/neoneye/Desktop/test/repo/.git/
Created initial commit a2a7d6f: one
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file
before stash
fatal: Not a git repository
fatal: Not a git repository
fatal: Not a git repository
You do not have the initial commit yet

prompt> cat run.sh
rm -rf repo &&
rm -f linked &&
mkdir repo &&
   cd repo &&
     git init &&
     echo content >file &&
     git add file &&
     git commit -m one &&
     mkdir test &&
   cd .. &&
     ln -s repo/test linked &&
   cd linked &&
     echo cruft >>file &&
     echo before stash &&
     git stash &&
     echo after stash

prompt> pwd
/Users/neoneye/Desktop/test
prompt>


This is my computer

prompt> git --version
git version 1.5.6.2
prompt> uname -a
Darwin Macintosh.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep  3
11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
prompt>


-- 
Simon Strandgaard
http://toolboxapp.com/

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

* Re: bug: git-stash save and symbolic links
  2008-10-20 15:32   ` Simon Strandgaard
@ 2008-10-20 15:39     ` Simon Strandgaard
  2008-10-20 17:55       ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Strandgaard @ 2008-10-20 15:39 UTC (permalink / raw)
  To: Jeff King; +Cc: git

On Mon, Oct 20, 2008 at 5:32 PM, Simon Strandgaard <neoneye@gmail.com> wrote:
> On Mon, Oct 20, 2008 at 5:17 PM, Jeff King <peff@peff.net> wrote:
>> On Mon, Oct 20, 2008 at 10:34:53AM +0200, Simon Strandgaard wrote:
> [snip]
>> What version of git are you running (though I tried a few different
>> ones, and all passed my test)?
>
>
> I have made some changes, so it can be reproduced
[snip]

Sorry, forget the other run.sh I forgot to add the dir to the repository.
Here the linked dir is included in the repository.

prompt> sh run.sh
Initialized empty Git repository in /Users/neoneye/Desktop/test/repo/.git/
Created initial commit b904776: one
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file
Created commit 19746b5: two
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 test/file2
before stash
fatal: Not a git repository
fatal: Not a git repository
fatal: Not a git repository
You do not have the initial commit yet

prompt> cat run.sh
rm -rf repo &&
rm -f linked &&
mkdir repo &&
   cd repo &&
     git init &&
     echo content >file &&
     git add file &&
     git commit -m one &&
     mkdir test &&
     echo content >test/file2 &&
     git add test/file2 &&
     git commit -m two &&
   cd .. &&
     ln -s repo/test linked &&
   cd linked &&
     echo cruft >>file &&
     echo before stash &&
     git stash &&
     echo after stash

prompt> pwd
/Users/neoneye/Desktop/test
prompt>


[snip]
> This is my computer
>
> prompt> git --version
> git version 1.5.6.2
> prompt> uname -a
> Darwin Macintosh.local 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep  3
> 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
> prompt>
>
>
> --
> Simon Strandgaard
> http://toolboxapp.com/
>



-- 
Simon Strandgaard
http://toolboxapp.com/

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

* Re: bug: git-stash save and symbolic links
  2008-10-20 15:39     ` Simon Strandgaard
@ 2008-10-20 17:55       ` Jeff King
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff King @ 2008-10-20 17:55 UTC (permalink / raw)
  To: Simon Strandgaard; +Cc: git

On Mon, Oct 20, 2008 at 05:39:31PM +0200, Simon Strandgaard wrote:

>      mkdir test &&
>      echo content >test/file2 &&
>      git add test/file2 &&
>      git commit -m two &&
>    cd .. &&
>      ln -s repo/test linked &&

Ah, OK. You have a symlink into a subdirectory of the repository. Git
correctly finds the repository's .git directory, but then when we
attempt to 'cd' to the top-level of the working tree, we end up outside
of the repository. The culprit is actually "git rev-parse --show-cdup".
This demonstrates it more simply:

  mkdir repo &&
  (cd repo && git init) &&
  mkdir repo/dir &&
  ln -s repo/dir linked &&
  cd linked && git rev-parse --show-cdup

which prints "../". But that's not right; we actually need to go to
"../repo".

I think the right solution in this situation is that we should _not_ be
setting is_inside_work_tree in setup_git_directory_gently, so that we
chdir to its absolute path. But I don't think we ever actually detect
the symlink during this setup, so I'm not sure how best to realize we
are _in_ this situation.

-Peff

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

end of thread, other threads:[~2008-10-20 17:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-20  8:34 bug: git-stash save and symbolic links Simon Strandgaard
2008-10-20 15:17 ` Jeff King
2008-10-20 15:32   ` Simon Strandgaard
2008-10-20 15:39     ` Simon Strandgaard
2008-10-20 17:55       ` Jeff King

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