git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Fwd: [PATCH] git-p4: chdir now properly sets PWD environment variable in msysGit

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 16, 2008, 05:56 UTC
Message-ID
<7vabfdjyet.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<7vskt5jyzh.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 5 quoted lines
> "Robert Blum" <rob.blum@gmail.com> writes:
>
>> Forgot reply-all - forwarding to list....
> ...
> I have been wondering what happened to this thread afterwards.

In the meantime, here is what I am inclined to apply. The same approach as the original, taking stylistic suggestion from Han-Wen.

-- >8 --
From: Robert Blum <rob.blum@gmail.com>
Date: Fri, 1 Aug 2008 12:50:03 -0700
Subject: [PATCH] git-p4: chdir now properly sets PWD environment variable in msysGit

P4 on Windows expects the PWD environment variable to be set to the current working dir, but os.chdir in python doesn't do so.

Signed-off-by: Robert Blum <rob.blum@gmail.com>
Acked-by: Simon Hausmann <simon@lst.de>
Acked-by: Han-Wen Nienhuys <hanwen@xs4all.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 contrib/fast-import/git-p4 |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 6ae0429..3f2303d 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -16,6 +16,11 @@ from sets import Set;
 
 verbose = False
 
+def chdir(dir):
+    if os.name == 'nt':
+        os.environ['PWD']=dir
+    os.chdir(dir)
+
 def die(msg):
     if verbose:
         raise Exception(msg)
@@ -712,7 +717,7 @@ class P4Submit(Command):
         print "Perforce checkout for depot path %s located at %s" % (self.depotPath, self.clientPath)
         self.oldWorkingDirectory = os.getcwd()
 
-        os.chdir(self.clientPath)
+        chdir(self.clientPath)
         print "Syncronizing p4 checkout..."
         system("p4 sync ...")
 
@@ -732,7 +737,7 @@ class P4Submit(Command):
 
         if len(commits) == 0:
             print "All changes applied!"
-            os.chdir(self.oldWorkingDirectory)
+            chdir(self.oldWorkingDirectory)
 
             sync = P4Sync()
             sync.run([])
@@ -1670,7 +1675,7 @@ class P4Clone(P4Sync):
         print "Importing from %s into %s" % (', '.join(depotPaths), self.cloneDestination)
         if not os.path.exists(self.cloneDestination):
             os.makedirs(self.cloneDestination)
-        os.chdir(self.cloneDestination)
+        chdir(self.cloneDestination)
         system("git init")
         self.gitdir = os.getcwd() + "/.git"
         if not P4Sync.run(self, depotPaths):
@@ -1782,7 +1787,7 @@ def main():
                 if os.path.exists(cmd.gitdir):
                     cdup = read_pipe("git rev-parse --show-cdup").strip()
                     if len(cdup) > 0:
-                        os.chdir(cdup);
+                        chdir(cdup);
 
         if not isValidGitDir(cmd.gitdir):
             if isValidGitDir(cmd.gitdir + "/.git"):
-- 
1.6.0.rc3.11.g8134a
Previous: Junio C Hamano
Message 8 of 8 in “git-p4: chdir now properly sets PWD environment variable in msysGit”
  1. git-p4: chdir now properly sets PWD environment variable in msysGitRobert Blum, Aug 1, 2008
  2. Junio C HamanoAug 3, 2008
  3. Simon HausmannAug 5, 2008
  4. Han-Wen NienhuysAug 4, 2008
  5. Alex RiesenAug 5, 2008
  6. Fwd: [PATCH] git-p4: chdir now properly sets PWD environment variable in msysGitRobert Blum, Aug 4, 2008
  7. Junio C HamanoAug 16, 2008
  8. Junio C HamanoAug 16, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.