git stash syntax error under AIX 5.3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The stash command relies on bash-specific shell scripting techniques
when the shebang line lists Bourne shell.  This was introduced in
b0f0ecd97924ee775e7f3b29366133448f4f8e15.  The error was noticed when
running under AIX 5.3:

$ /bin/sh -n git-stash.sh
git-stash.sh[63]: syntax error at line 498 : `"' unmatched
$ /bin/sh -n git-stash-modified.sh
$ diff git-stash.sh git-stash-modified.sh
314,321c314,321
<       if test "${REV}" != "${REV%{*\}}"
<       then
<               # maintainers: it would be better if git rev-parse indicated
<               # this condition with a non-zero status code but as of
1.7.2.1 it
<               # it did not. So, we use non-empty stderr output as a
proxy for the
<               # condition of interest.
<               test -z "$(git rev-parse "$REV" 2>&1 >/dev/null)" ||
die "$REV does not exist in the stash log"
<       fi
---
> #     if test "${REV}" != "${REV%{*\}}"
> #     then
> #             # maintainers: it would be better if git rev-parse indicated
> #             # this condition with a non-zero status code but as of 1.7.2.1 it
> #             # it did not. So, we use non-empty stderr output as a proxy for the
> #             # condition of interest.
> #             test -z "$(git rev-parse "$REV" 2>&1 >/dev/null)" || die "$REV does not exist in the stash log"
> #     fi
$ head -1 git-stash.sh
#!/bin/sh

Removing the code from that commit causes the stash command to work
properly.  I am not sure if other systems have /bin/sh symbolically
linked to /bin/bash, but in AIX the /bin/sh fails to properly parse
the default git-stash.sh.

I am not sure how to correct this logic since Bourne shell does not
have an equally powerful search and replace variable substitution
operator nor do I know exactly what this is meant to filter out of the
variable.  For now, I have simply patched the source to comment out
those lines.

Brian Riehman
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]