git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* BUG on OSX `git p4 submit` can fail when the workspace root doesn't exist locally.
@ 2016-04-27 16:15 Jacob Smith
  2016-04-27 16:28 ` Stefan Beller
  0 siblings, 1 reply; 5+ messages in thread
From: Jacob Smith @ 2016-04-27 16:15 UTC (permalink / raw)
  To: git

On OS X, if the local p4 workspace root doesn't exist, then git-p4 can
fail on submit. The error message looks like this:

    Synchronizing p4 checkout...

    Git submit failed!
    shell-init: error retrieving current directory: getcwd: cannot
access parent directories: No such file or directory
    fatal: Unable to read current working directory: No such file or directory
    Command failed: ['git', 'rev-list', '--no-merges',
'remotes/p4/master..master']

The problem is in the function 'run()' around line 1957. The logic in
the code is:

    1. Detect if the clientPath exists;
    2. If the clientPath doesn't exist, set the 'new_client_dir'
variable to 'True';
    3. chdir() to the clientPath; then,
    4. If 'new_client_dir' is 'True', then p4_sync("...", True).

On my system, the call to `p4 sync -f` leaves the clientPath directory
that git-p4 had chdir()'d into an orphan, so the call to 'git rev-list
...' a few lines fails because the call to getcwd() fails (the
directory has no parents).

I can make the problem "go away" by moving the location of the call to
'chdir(self.clientPath, is_client_path=True)' after the call to
`p4_sync()`, but I'm not sure if that's really fixing the issue, or
not.

Thanks!
-j.

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

end of thread, other threads:[~2016-04-28  7:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-27 16:15 BUG on OSX `git p4 submit` can fail when the workspace root doesn't exist locally Jacob Smith
2016-04-27 16:28 ` Stefan Beller
2016-04-27 18:06   ` Jacob Smith
2016-04-27 20:53     ` Stefan Beller
2016-04-28  7:36       ` Luke Diamand

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