git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* cygwin git and golang: how @{u} is handled
@ 2018-01-21 18:31 John Cheng
  2018-01-21 18:55 ` Ævar Arnfjörð Bjarmason
  2018-01-21 23:43 ` Philip Oakley
  0 siblings, 2 replies; 4+ messages in thread
From: John Cheng @ 2018-01-21 18:31 UTC (permalink / raw)
  To: git

I am experiencing a strange behavior and I'm not certain if it is a
problem with golang or the cygwin version of git.

Steps to reproduce:
Use golang's os/exec library to execute
exec.Command(os.Args[1],"log","@{u}") // where os.Args[1] is either
cygwin git or Windows git

Expected result:
commit 09357db3a29909c3498143b0d06989e00f5e2442
Author: John Cheng <johnlicheng@gmail.com>
Date:   Sun Jan 14 10:57:01 2018 -0800
...

Actual result:
Suppose that cygwin git is specified, the result becomes:
exit status 128 fatal: ambiguous argument '@u': unknown revision or
path not in the working tree.

Version:
git version 2.15.1.windows.2
git version 2.15.1

I'm not certain if this is a git problem, as I could not reproduce
this problem using python to script cygwin git.

A list of scenarios I've tested are
1. golang + cygwin git = "exit code 128"
2. golang + windows git = "exit code 0"
3. python + cygwin git = "exit code 0"
4. python + windows git = "exit code 0"

I've tried to write a simple program to echo the command line
parameters passed by go into the process it executes - and it appears
that go itself does not change "@{u}" into "@u". I'm a bit stuck at
point to figure out which may be the cause: golang or git. I figured
I'd start here.





-- 
---
John L Cheng

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

* Re: cygwin git and golang: how @{u} is handled
  2018-01-21 18:31 cygwin git and golang: how @{u} is handled John Cheng
@ 2018-01-21 18:55 ` Ævar Arnfjörð Bjarmason
  2018-01-21 23:43 ` Philip Oakley
  1 sibling, 0 replies; 4+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2018-01-21 18:55 UTC (permalink / raw)
  To: John Cheng; +Cc: git


On Sun, Jan 21 2018, John Cheng jotted:

> Actual result:
> Suppose that cygwin git is specified, the result becomes:
> exit status 128 fatal: ambiguous argument '@u': unknown revision or
> path not in the working tree.

Given that:

    $ git log @{x}
    fatal: ambiguous argument '@{x}': unknown revision or path not in the working tree.

Spews the output back at you as @{x} not @x the problem must be in
whatever is passing the argument to git, whether that's go or some other
wrapper.

Try putting a "git" first in your $PATH which is nothing but:

    #!/bin/sh
    echo "args: $@"
    exit 1

And seeing what you get.

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

* Re: cygwin git and golang: how @{u} is handled
  2018-01-21 18:31 cygwin git and golang: how @{u} is handled John Cheng
  2018-01-21 18:55 ` Ævar Arnfjörð Bjarmason
@ 2018-01-21 23:43 ` Philip Oakley
  2018-01-22  1:44   ` John Cheng
  1 sibling, 1 reply; 4+ messages in thread
From: Philip Oakley @ 2018-01-21 23:43 UTC (permalink / raw)
  To: John Cheng, git

From: "John Cheng" <johnlicheng@gmail.com>
>I am experiencing a strange behavior and I'm not certain if it is a
> problem with golang or the cygwin version of git.
>
> Steps to reproduce:
> Use golang's os/exec library to execute
> exec.Command(os.Args[1],"log","@{u}") // where os.Args[1] is either
> cygwin git or Windows git
>
> Expected result:
> commit 09357db3a29909c3498143b0d06989e00f5e2442
> Author: John Cheng <johnlicheng@gmail.com>
> Date:   Sun Jan 14 10:57:01 2018 -0800
> ...
>
> Actual result:
> Suppose that cygwin git is specified, the result becomes:
> exit status 128 fatal: ambiguous argument '@u': unknown revision or
> path not in the working tree.
>
> Version:
> git version 2.15.1.windows.2
> git version 2.15.1
>
> I'm not certain if this is a git problem, as I could not reproduce
> this problem using python to script cygwin git.
>
> A list of scenarios I've tested are
> 1. golang + cygwin git = "exit code 128"
> 2. golang + windows git = "exit code 0"
> 3. python + cygwin git = "exit code 0"
> 4. python + windows git = "exit code 0"
>
> I've tried to write a simple program to echo the command line
> parameters passed by go into the process it executes - and it appears
> that go itself does not change "@{u}" into "@u". I'm a bit stuck at
> point to figure out which may be the cause: golang or git. I figured
> I'd start here.
>
There is a similar problem a user is experiencing on Git-for-Windows, that 
we/the user haven't got to the bottom of, but it appears to have a similar 
form where the braces appear to be is some form parsed twice (though thats 
still a guess / hypothesis).

"Aliases in git are stripping curly-brackets (#1220)" 
https://github.com/git-for-windows/git/issues/1220#issuecomment-340341336



Philip


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

* Re: cygwin git and golang: how @{u} is handled
  2018-01-21 23:43 ` Philip Oakley
@ 2018-01-22  1:44   ` John Cheng
  0 siblings, 0 replies; 4+ messages in thread
From: John Cheng @ 2018-01-22  1:44 UTC (permalink / raw)
  To: Philip Oakley; +Cc: git

Hi Phillip,

Thanks for pointing me to the github issue. I've added my comments to
it. For my particular issue, it was resolved by setting
"CYGWIN=noglob" as an environment variable. Hopefully it resolves
Robert's problem as well.



On Sun, Jan 21, 2018 at 3:43 PM, Philip Oakley <philipoakley@iee.org> wrote:
> From: "John Cheng" <johnlicheng@gmail.com>
>
>> I am experiencing a strange behavior and I'm not certain if it is a
>> problem with golang or the cygwin version of git.
>>
>> Steps to reproduce:
>> Use golang's os/exec library to execute
>> exec.Command(os.Args[1],"log","@{u}") // where os.Args[1] is either
>> cygwin git or Windows git
>>
>> Expected result:
>> commit 09357db3a29909c3498143b0d06989e00f5e2442
>> Author: John Cheng <johnlicheng@gmail.com>
>> Date:   Sun Jan 14 10:57:01 2018 -0800
>> ...
>>
>> Actual result:
>> Suppose that cygwin git is specified, the result becomes:
>> exit status 128 fatal: ambiguous argument '@u': unknown revision or
>> path not in the working tree.
>>
>> Version:
>> git version 2.15.1.windows.2
>> git version 2.15.1
>>
>> I'm not certain if this is a git problem, as I could not reproduce
>> this problem using python to script cygwin git.
>>
>> A list of scenarios I've tested are
>> 1. golang + cygwin git = "exit code 128"
>> 2. golang + windows git = "exit code 0"
>> 3. python + cygwin git = "exit code 0"
>> 4. python + windows git = "exit code 0"
>>
>> I've tried to write a simple program to echo the command line
>> parameters passed by go into the process it executes - and it appears
>> that go itself does not change "@{u}" into "@u". I'm a bit stuck at
>> point to figure out which may be the cause: golang or git. I figured
>> I'd start here.
>>
> There is a similar problem a user is experiencing on Git-for-Windows, that
> we/the user haven't got to the bottom of, but it appears to have a similar
> form where the braces appear to be is some form parsed twice (though thats
> still a guess / hypothesis).
>
> "Aliases in git are stripping curly-brackets (#1220)"
> https://github.com/git-for-windows/git/issues/1220#issuecomment-340341336
>
>
>
> Philip
>



-- 
---
John L Cheng

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

end of thread, other threads:[~2018-01-22  1:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-21 18:31 cygwin git and golang: how @{u} is handled John Cheng
2018-01-21 18:55 ` Ævar Arnfjörð Bjarmason
2018-01-21 23:43 ` Philip Oakley
2018-01-22  1:44   ` John Cheng

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).