Windows: Fix handling of absolute unix-style git repository paths.

Note that on Windows a remote with a path like /home/foo/bar
is interpreted by git as being some screwy relative path (relative to what
exactly seems ill-defined -- it seemed relative to C:\Program Files\Git\ in
my tests!) So no attempt has been made to handle such a path sanely, just not
to crash when encountering it.

Note that "C:\\foo" </> "/home/foo/bar" yields /home/foo/bar even though
that is not absolute! I don't know what to make of all this,
except that I will be very happy when this crock of **** vanishes from
the face of the earth.
This commit is contained in:
Joey Hess 2014-02-08 15:31:03 -04:00
parent f068f4e579
commit c95d0cf7a8
6 changed files with 28 additions and 5 deletions

View file

@ -6,9 +6,18 @@ internal error, /home/michele/assistannex is not absolute
### What steps will reproduce the problem?
create a transfer repository on a usb drive (from windows) merge it with a repository on linux, try to merge it on another target windows machine
create a transfer repository on a usb drive (from windows) merge it with a
repository on linux, try to merge it on another target windows machine
### What version of git-annex are you using? On what operating system?
git-annex version 5.20140128-g29aea74
> I'm not able to follow the steps to reproduce this, but I think
> I see what the problem is. `isAbsolute` on windows does not think that
> unix-style path is absolute. Such a path can appear in a remote of a git
> repository, particularly if part of that repository was set up on a
> non-Windows system. While the remote won't be usable on Windows with a
> path like that, git-annex should not choke on the path either.
> I have fixed the code to deal with this.
> [[done]] --[[Joey]]