Thread (14 messages) flat view 14 messages, 5 authors, 2016-06-15

Re: Asking again... [Re: how to properly import perforce history?]

From: Scott Lamb <hidden>
Date: 2016-06-15 22:43:15

Alex Riesen wrote:
Simon Hausmann, Mon, Jun 11, 2007 20:42:12 +0200:
quoted
On Monday 11 June 2007 17:44:04 Alex Riesen wrote:
quoted
On 6/11/07, Simon Hausmann [off-list ref] wrote:
quoted
*plug* You could try with git-p4 from http://repo.or.cz/w/fast-export.git
. It should be just a matter of calling

        git-p4 clone //depot/path
Can I suggest you add a target directory mapping to your tool?
Something like:

  git-p4 clone //depot/project/path [libs/project/path] [rev-range]
I'm not sure I understand the libs/project/path part, ...
Your client contains the mappings. It defines how the pathnames on the
p4 server relate to that on your computer. In the example above file
from the depot path //depot/project/path can be found in the directory
of the p4 client in the subdirectories libs/project/path.
git-p4 doesn't even use a p4 client, so the result is simply as it was 
on the server. It just does a "p4 print" on depot paths.
quoted
Han-Wen implemented also support for importing multiple depot paths at the 
same time (and tracking them in one git branch).
And where does he put the depot paths? As they are in depot? How does
this corelate to the setups done by genuine P4 users (the poor souls)
where the mappings are not always 1-to-1 right from the root? Or you
haven't got any?
Could you give a concrete example of what you have and what you are 
trying to produce?
quoted
The environment I'm working in is not too big and fairly liberal and 
reasonably disciplined.
You must be very strange environment indeed. Carefully balanced.
Not that strange. My company's setup is pretty simple, too. The project 
I'm working on just uses has each branch under 
"//depot/project/BRANCH/...". Maybe your environment is the odd one?
quoted
quoted
And, BTW, don't you have a small problem with filenames with
spaces and quoting?
I'm not aware of any problems. For example in our depot we have filenames with 
spaces in them and they appear just fine in my git import. Did you run into 
any specific case? It could very well be that there's a bug somewhere that 
I'm just not hitting myself, so I'm curious :)
No, I just looking at the source. Does python have some magic for
running programs with system() when passed a format string? Like here:

        for f in filesToAdd:
            system("p4 add %s" % f)
        for f in filesToDelete:
            system("p4 revert %s" % f)
            system("p4 delete %s" % f)

BTW, sometimes you quote the names, but obviously wrong (think about
filenames containing double quotes):

                system("p4 edit \"%s\"" % path)
                editedFiles.add(path)
No, there's no magic. I can't imagine how these could work properly with 
complex filenames. They also don't do any checking of return values. I'm 
planning on sending in patches to make git-p4 use the Python subprocess 
module to do this better (as I did for git-p4import.py). It might take 
me a while to get to that item on my todo list, though - rather busy at 
work right now.

-- 
Scott Lamb <http://www.slamb.org/>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help