Thread (10 messages) flat view 10 messages, 4 authors, 2016-06-15

Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present

From: Pete Wyckoff <hidden>
Date: 2016-06-15 22:54:03

ilya.dogolazky@nokia.com wrote on Tue, 12 Jun 2012 12:37 +0300:
Hi Luke!
quoted
#!/bin/sh
export P4PORT=localhost:1234
mkdir db cli
( cd db && p4d & )
sleep 2
( cd cli && EDITOR=: p4 client && date >foo.c &&
  p4 add foo.c && p4 submit -d 'x' )
git-p4 clone //depot@all
I installed p4d on my machine and executed the above script.
It works, the file foo.c is visible in the copy and one line patch
is visible by "git log -p". Everything is fine!

Then I realize, that the "git-p4" call in your script is
communicating with the p4 daemon directly, which is much more simple
setup than I tried to use before. Then I changed the clone command:
instead of
 $ git p4 clone //kalma/xxx/yyy@all
I now tried
 $ git p4 clone //xxx/yyy@all
after setting P4PORT etc to point to the company's perforce server.
And it worked!
Fascinating.  So //kalma/xxx/yyy is a depot hosted in a p4d that runs
on your local box, but //xxx/yyy is the depot name hosted in
the company's p4d?
Then I even tried
$ git p4 clone //xxx@all
And it worked too (creating a huge git repository with the whole project).

Until today I tried to use the following setup: first clone the
whole perforce repository with p4 command line client to my machine
('kalma' is its name) and then make a git repository by "git-p4
clone" from this intermediate location (and it seems I did something
wrong there: files were visible in the intermediate location after
the first step, but not in the end location after git-p4). I read it
somewhere in documentation claiming that it's the only way to use
git-p4. But now I see, that it seems not to be necessary. Please
clarify, is it okay to skip this intermediate location and use
git-p4 in the same way as your script does?
I'm completely confused that //kalma/xxx/yyy even appeard to work
at all.  Will be interested to see your P4PORT setting when using
that repo.
And another question, probably connected to above: Now I did this:
$ git p4 clone //xxx/yyy@all
$ cd yyy/zzz
$ edit readme.txt (which was already present there)
$ git commit readme.txt
$ git p4 rebase (Current branch master is up to date)
$ git p4 submit

That last step failed with following messages:
Submitting change 20073
... //xxx/yyy/zzz/readme.txt -  warning: cannot submit from
non-stream client
No files to submit.
Submit failed -- fix problems above then use 'p4 submit -c 20073'.
Ooh.  You're using the shiny new "streams" feature in p4,
I think.  Can you play with "p4 stream" to see if one is
defined on //xxx or //xxx/yyy?.

Could be that the work-around is to use "p4 client" to
set the "Stream" field.  This p4 forum post talks about
using "p4 client -s -S ...".

http://forums.perforce.com/index.php?/topic/1139-seeding-streams-from-existing-depots-failed/

which is explained at the bottom of this section:

http://www.perforce.com/perforce/doc.current/manuals/p4guide/06_codemgmt.html#1066766

If you can help us understand the problem a bit better,
a reasonable fix might be to detect this situation in
git-p4 and at least explain how to fix it.  Since git-p4
does not create the client used for submit, we don't have
much control over its settings.

		-- Pete
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help