From: Johannes Sixt <j6t@kdbg.org>
To: Jens Lehmann <Jens.Lehmann@web.de>
Cc: Junio C Hamano <gitster@pobox.com>,
Git Mailing List <git@vger.kernel.org>,
Antony Male <antony.male@gmail.com>,
Phil Hord <phil.hord@gmail.com>,
msysGit <msysgit@googlegroups.com>
Subject: Re: [PATCH 0/2] submodules: Use relative paths to gitdir and work tree
Date: Sun, 26 Feb 2012 18:38:02 +0100 [thread overview]
Message-ID: <4F4A6DFA.5080709@kdbg.org> (raw)
In-Reply-To: <4F32F252.7050105@web.de>
Am 08.02.2012 23:08, schrieb Jens Lehmann:
> This patch series replaces all absolute paths pointing from submodule work
> trees to its gitdir and back with relative paths as discussed in $gmane/187785.
>
> The motivation is to make superprojects movable again. They lost this ability
> with the move of the git directory of submodules into the .git/modules directory
> of the superproject. While fixing that a bug which would hit when moving the
> submodule inside the superproject was also fixed.
>
> Jens Lehmann (2):
> submodules: always use a relative path to gitdir
> submodules: always use a relative path from gitdir to work tree
This series, with the tip at e3307adaba in Junio's repo causes major
headaches on Windows.
First, a check for an absolute path must be extended to take
Windows-style paths into account.
Second, the a's and b's are filled with different forms of absolute
paths (/c/there vs. c:/there), and as a consequence the subsequent loops
do not find a suitable relative path.
The below is a minimal hack that passes all t/*submod* tests, but it
works only on Windows, where the pwd utility has an option -W that
prints a Windows style absolute path.
How would you have this solved? One option would be to introduce a function
pwd() { builtin pwd -W "$@"; }
in git-sh-setup conditionally on Windows (but that would affect other
shell scripts, too).
Any other ideas?
diff --git a/git-submodule.sh b/git-submodule.sh
index 3463d6d..f37745e 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -139,8 +139,8 @@ module_clone()
gitdir="$gitdir/modules/$path"
case $gitdir in
- /*)
- a="$(cd_to_toplevel && pwd)/"
+ /* | [a-z]:/*)
+ a="$(cd_to_toplevel && pwd -W)/"
b=$gitdir
while [ "$b" ] && [ "${a%%/*}" = "${b%%/*}" ]
do
@@ -170,8 +170,8 @@ module_clone()
echo "gitdir: $rel_gitdir" >"$path/.git"
- a=$(cd "$gitdir" && pwd)
- b=$(cd "$path" && pwd)
+ a=$(cd "$gitdir" && pwd -W)
+ b=$(cd "$path" && pwd -W)
while [ "$b" ] && [ "${a%%/*}" = "${b%%/*}" ]
do
a=${a#*/} b=${b#*/};
--
1.7.8.216.g2e426
next prev parent reply other threads:[~2012-02-26 17:38 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-08 22:08 [PATCH 0/2] submodules: Use relative paths to gitdir and work tree Jens Lehmann
2012-02-08 22:11 ` [PATCH 1/2] submodules: always use a relative path to gitdir Jens Lehmann
2012-02-09 8:18 ` [PATCH v2 " Jens Lehmann
2012-02-09 19:40 ` Junio C Hamano
2012-02-09 19:52 ` Junio C Hamano
2012-02-09 20:13 ` Jens Lehmann
2012-02-08 22:17 ` [PATCH 2/2] submodules: always use a relative path from gitdir to work tree Jens Lehmann
2012-02-09 8:18 ` [PATCH v2 " Jens Lehmann
2012-02-13 19:59 ` Junio C Hamano
2012-02-14 17:36 ` Jens Lehmann
2012-02-14 20:24 ` Junio C Hamano
2012-02-14 20:34 ` Junio C Hamano
2012-02-15 22:18 ` Jens Lehmann
2012-02-26 17:38 ` Johannes Sixt [this message]
2012-02-26 19:58 ` [PATCH 0/2] submodules: Use relative paths to gitdir and " Jens Lehmann
2012-02-27 21:19 ` Johannes Sixt
2012-02-27 21:41 ` [msysGit] " Johannes Schindelin
2012-02-28 18:58 ` Johannes Sixt
2012-02-28 19:14 ` Junio C Hamano
2012-02-28 19:33 ` Jens Lehmann
2012-02-28 19:21 ` Jens Lehmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F4A6DFA.5080709@kdbg.org \
--to=j6t@kdbg.org \
--cc=Jens.Lehmann@web.de \
--cc=antony.male@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=msysgit@googlegroups.com \
--cc=phil.hord@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.