* git-p4: commits are visible in history after 'git p4 clone', but not a single file present
@ 2012-06-11 10:03 Ilya Dogolazky
2012-06-11 15:28 ` Luke Diamand
0 siblings, 1 reply; 10+ messages in thread
From: Ilya Dogolazky @ 2012-06-11 10:03 UTC (permalink / raw)
To: git
Hi !
I hope this is the right mailing list for question regarding the usage
of git-p4, sorry if I'm wrong.
Here is my problem: I'm issuing the command
'git p4 clone //kalma/xxx/yyy@all'. (the depot //kalma/xxx/yyy/ exists
on my machine and is full of files). After this command the directory
'yyy' is created and the history of commits is visible there by 'git log
-p'.
Every commit contains author name, a title (related to the project I'm
working on, so obviously coming from perforce depot) and a single line
looking like this:
[git-p4: depot-paths = "//kalma/xxx/yyy/": change = 17473]
Beside of that, the commit is empty: not a single line of code is
changed/added. And the directory 'yyy' contains only the '.git'
subdirectory, so not a single file of the project is visible.
Please help me to understand what could be going on there, and what
could I have done wrong.
Thanks a lot!
-- Ilya Dogolazky
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-11 10:03 git-p4: commits are visible in history after 'git p4 clone', but not a single file present Ilya Dogolazky
@ 2012-06-11 15:28 ` Luke Diamand
2012-06-11 19:16 ` Ilya Dogolazky
0 siblings, 1 reply; 10+ messages in thread
From: Luke Diamand @ 2012-06-11 15:28 UTC (permalink / raw)
To: Ilya Dogolazky; +Cc: git
On Mon, Jun 11, 2012 at 11:03 AM, Ilya Dogolazky
<ilya.dogolazky@nokia.com> wrote:
> Hi !
>
> I hope this is the right mailing list for question regarding the usage of
> git-p4, sorry if I'm wrong.
This is the right place!
>
> Here is my problem: I'm issuing the command
> 'git p4 clone //kalma/xxx/yyy@all'. (the depot //kalma/xxx/yyy/ exists on my
> machine and is full of files). After this command the directory 'yyy' is
> created and the history of commits is visible there by 'git log -p'.
>
> Every commit contains author name, a title (related to the project I'm
> working on, so obviously coming from perforce depot) and a single line
> looking like this:
>
> [git-p4: depot-paths = "//kalma/xxx/yyy/": change = 17473]
>
> Beside of that, the commit is empty: not a single line of code is
> changed/added. And the directory 'yyy' contains only the '.git'
> subdirectory, so not a single file of the project is visible.
>
> Please help me to understand what could be going on there, and what could I
> have done wrong.
If you do something like "p4 describe 17473" what does that show?
Are the files changed all contained with //kalma/xxx/yyy?
It could be that there's a p4 version problem going on - which version
of p4 are you
using? And which platform are you using?
Thanks,
Luke
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-11 15:28 ` Luke Diamand
@ 2012-06-11 19:16 ` Ilya Dogolazky
2012-06-11 22:46 ` Luke Diamand
0 siblings, 1 reply; 10+ messages in thread
From: Ilya Dogolazky @ 2012-06-11 19:16 UTC (permalink / raw)
To: git; +Cc: Luke Diamand
Hi Luke!
06/11/2012 06:28 PM, ext Luke Diamand написал:
> If you do something like "p4 describe 17473" what does that show?
First I see a line containing the change number, my colleague's name and
date, then the commit title (identical to one printed by "git log"),
then a list of files [every line begins with "... //xxx/yyy/"], then the
word "Differences" and then something looking very much like output of
'diff' command (the actual commit differences).
> Are the files changed all contained with //kalma/xxx/yyy?
Yes, they are.
> It could be that there's a p4 version problem going on - which version
> of p4 are you
> using?
The output of 'p4 -V' contains "Rev. P4/LINUX26X86/2012.1/459601
(2012/05/11)". That's probably the version of my command line client.
The output of "p4 info" contains "P4D/LINUX26X86_64/2011.1/428451
(2012/03/08)" --- that's probably the version of the server.
The version of git installation (by debian package) is 1:1.7.10-1 (as
reported by "dpkg -l git"). The package contains the file
"/usr/share/doc/git/contrib/fast-import/git-p4" which I copied to
$HOME/bin/git-p4 in order to have in $PATH and with executable bit.
Could it be, that I did something wrong here by making this manually?
> And which platform are you using?
Debian GNU/Linux.
I hope I provided all the needed information, of not please ask for more.
Cheers,
Ilya
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-11 19:16 ` Ilya Dogolazky
@ 2012-06-11 22:46 ` Luke Diamand
2012-06-12 9:37 ` Ilya Dogolazky
0 siblings, 1 reply; 10+ messages in thread
From: Luke Diamand @ 2012-06-11 22:46 UTC (permalink / raw)
To: Ilya Dogolazky; +Cc: git, Pete Wyckoff
On 11/06/12 20:16, Ilya Dogolazky wrote:
> Hi Luke!
>
> 06/11/2012 06:28 PM, ext Luke Diamand написал:
>> If you do something like "p4 describe 17473" what does that show?
> First I see a line containing the change number, my colleague's name and
> date, then the commit title (identical to one printed by "git log"),
> then a list of files [every line begins with "... //xxx/yyy/"], then the
> word "Differences" and then something looking very much like output of
> 'diff' command (the actual commit differences).
>
>> Are the files changed all contained with //kalma/xxx/yyy?
> Yes, they are.
>
>> It could be that there's a p4 version problem going on - which version
>> of p4 are you
>> using?
> The output of 'p4 -V' contains "Rev. P4/LINUX26X86/2012.1/459601
> (2012/05/11)". That's probably the version of my command line client.
>
> The output of "p4 info" contains "P4D/LINUX26X86_64/2011.1/428451
> (2012/03/08)" --- that's probably the version of the server.
>
> The version of git installation (by debian package) is 1:1.7.10-1 (as
> reported by "dpkg -l git"). The package contains the file
> "/usr/share/doc/git/contrib/fast-import/git-p4" which I copied to
> $HOME/bin/git-p4 in order to have in $PATH and with executable bit.
> Could it be, that I did something wrong here by making this manually?
That version of git-p4 seems different to the one in the repo. I think it's just a bit older.
>
> > And which platform are you using?
> Debian GNU/Linux.
>
> I hope I provided all the needed information, of not please ask for more.
Can you try an experiment please. Try running the following commands. When I run them I get out a file that looks correct.
#!/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've been trying out Debian's 1.7.10.1 and it seems fine, other than having a slightly old version of git-p4 and it not being installed properly.
>
> Cheers,
>
> Ilya
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-11 22:46 ` Luke Diamand
@ 2012-06-12 9:37 ` Ilya Dogolazky
2012-06-12 22:24 ` Pete Wyckoff
0 siblings, 1 reply; 10+ messages in thread
From: Ilya Dogolazky @ 2012-06-12 9:37 UTC (permalink / raw)
To: Luke Diamand; +Cc: git, Pete Wyckoff
Hi Luke!
> #!/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!
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?
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'.
Is it somehow related to my setup?
Cheers,
Ilya
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-12 9:37 ` Ilya Dogolazky
@ 2012-06-12 22:24 ` Pete Wyckoff
2012-06-13 6:58 ` Ilya Dogolazky
0 siblings, 1 reply; 10+ messages in thread
From: Pete Wyckoff @ 2012-06-12 22:24 UTC (permalink / raw)
To: Ilya Dogolazky; +Cc: Luke Diamand, git
ilya.dogolazky@nokia.com wrote on Tue, 12 Jun 2012 12:37 +0300:
> Hi Luke!
>
> > #!/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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-12 22:24 ` Pete Wyckoff
@ 2012-06-13 6:58 ` Ilya Dogolazky
2012-06-13 12:56 ` Ilya Dogolazky
0 siblings, 1 reply; 10+ messages in thread
From: Ilya Dogolazky @ 2012-06-13 6:58 UTC (permalink / raw)
To: ext Pete Wyckoff; +Cc: Luke Diamand, git
Hi Pete !
06/13/2012 01:24 AM, ext Pete Wyckoff написал:
> 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?
No. But now I think I understand, what I did wrong. There is no p4d
running on my own machine. "kalma" in this case is the name of the so
called "perforce client" I tried to use. And I think my error was to
express "please use perforce client 'kalma' to access depot '//xxx/yyy'"
by the string "//kalma/xxx/yyy", which is wrong. I'm pretty sure it was
not quite my own idea to do so, probably I misunderstood some piece of
documentation somewhere.
> 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 I think I understand now, why "//kalma/xxx/yyy" appeared to work: it
took all the commits, but as I wanted to have something beginning with
"kalma" I got no files, because everything begins with "xxx" (and couple
of other names, none of them is equal to 'kalma'). Does this explanation
seem reasonable?
> 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?.
Yes, alas I have to use it. Now I re-defined my "client" settings,
included the stream there and started from the beginning. Here is what I
did:
$ p4 client (and edit opened file .....)
Client xexe1 saved.
$ P4CLIENT=xexe1 p4 sync
//xxx/yyy/zzz/readme.txt#1 - added as /x/data/tmp/xexe/yyy/zzz/readme.txt
$ P4CLIENT=xexe1 git p4 clone //xxx/yyy@all ~/xexe1
Importing from //xxx/yyy into /home/ilya/xexe1
Initialized empty Git repository in /home/ilya/xexe1/.git/
Doing initial import of //xxx/yyy/ from revision #head into
refs/remotes/p4/master
$ cd ~/xexe1
$ vim zzz/readme.txt (and edit it)
$ git commit zzz/readme.txt
Until now everything worked fine, so now is time to submit the changes
on readme.txt file ("rebase" is not needed, as no changes happened yet
since I cloned).
$ P4CLIENT=xexe1 git p4 submit
Error: Cannot locate perforce checkout of //xxx/yyy/ in client view
This message comes from git-p4 script somewhere around line 1276 and I
don't understand its meaning.
Then I tried to set git-p4.useclientspec to "true" and I got the message:
$ P4CLIENT=xexe1 git p4 submit
Can't handle %n wildcards in view: //xxx/yyy/zzz/somefile%%1
This "%%1" is visible in client config (as opened in editor during
execution "P4CLIENT=xexe1 p4 client"), but I have not added it by
myself: this line [and many other similar lines in View: section] was
added after I set "Stream: //xxx/yyy" there. The beginning of View:
section looks like this now:
//xxx/yyy/zzz/... //xexe1/zzz/...
-//xxx/yyy/zzz/somefile%%1 //xexe1/zzz/somefile%%1
(yes, it begins with '-' and there are many other lines beginning with
'-', but this one is the only one containing '%%')
What do you think, is it now something wrong with git-p4 or is it again
something wrong in my setup?
Cheers,
Ilya
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-13 6:58 ` Ilya Dogolazky
@ 2012-06-13 12:56 ` Ilya Dogolazky
2012-06-13 18:00 ` Luke Diamand
0 siblings, 1 reply; 10+ messages in thread
From: Ilya Dogolazky @ 2012-06-13 12:56 UTC (permalink / raw)
To: Pete Wyckoff, Luke Diamand; +Cc: git
Hi !
06/13/2012 09:58 AM, Ilya Dogolazky написал:
> $ P4CLIENT=xexe1 git p4 submit
> Error: Cannot locate perforce checkout of //xxx/yyy/ in client view
After some playing around with git-p4 script and adding debugging
printing I realized, that the solution is to do
$ P4CLIENT=xexe1 git p4 clone //xxx/yyy/zzz@all ~/xexe1
instead of just
$ P4CLIENT=xexe1 git p4 clone //xxx/yyy@all ~/xexe1
After that "git-p4 submit" started to work.
I still don't understand p4 enough in order to know why it's happening,
but now at least I can clone+change+rebase+submit files into the
perforce repository with git-p4, which is great.
Luke, Pete: thanks a lot for your help and patience!
Cheers,
Ilya
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-13 12:56 ` Ilya Dogolazky
@ 2012-06-13 18:00 ` Luke Diamand
2012-06-14 10:23 ` Ilya Dogolazky
0 siblings, 1 reply; 10+ messages in thread
From: Luke Diamand @ 2012-06-13 18:00 UTC (permalink / raw)
To: Ilya Dogolazky; +Cc: Pete Wyckoff, git
On 13/06/12 13:56, Ilya Dogolazky wrote:
> Hi !
>
> 06/13/2012 09:58 AM, Ilya Dogolazky написал:
>> $ P4CLIENT=xexe1 git p4 submit
>> Error: Cannot locate perforce checkout of //xxx/yyy/ in client view
>
> After some playing around with git-p4 script and adding debugging
> printing I realized, that the solution is to do
>
> $ P4CLIENT=xexe1 git p4 clone //xxx/yyy/zzz@all ~/xexe1
> instead of just
> $ P4CLIENT=xexe1 git p4 clone //xxx/yyy@all ~/xexe1
>
> After that "git-p4 submit" started to work.
>
> I still don't understand p4 enough in order to know why it's happening,
> but now at least I can clone+change+rebase+submit files into the
> perforce repository with git-p4, which is great.
>
> Luke, Pete: thanks a lot for your help and patience!
So - what is a p4 stream? I found some blurb on the Perforce website but
I was none the wiser after reading it.
Thanks!
Luke
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: git-p4: commits are visible in history after 'git p4 clone', but not a single file present
2012-06-13 18:00 ` Luke Diamand
@ 2012-06-14 10:23 ` Ilya Dogolazky
0 siblings, 0 replies; 10+ messages in thread
From: Ilya Dogolazky @ 2012-06-14 10:23 UTC (permalink / raw)
To: Luke Diamand; +Cc: Pete Wyckoff, git
Hi !
2012/6/13 Luke Diamand <luke@diamand.org>:
> So - what is a p4 stream? I found some blurb on the Perforce website but I
> was none the wiser after reading it.
To be honest, I don't have any idea (and my whole p4 experience is
less than one week long). As our local p4 guru explained to me, a
"stream" is some kind of writeable area in depot and every "client"
can have 0 or 1 "streams". If a client has a stream, then it's called
"streamable" and one can submit changes to this particular area (which
means more or less directory) by using this particular client. I don't
know if this story is sane, but at least this explains my problems
while I tried to submit changes.
Cheers,
Ilya
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-06-14 10:24 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-11 10:03 git-p4: commits are visible in history after 'git p4 clone', but not a single file present Ilya Dogolazky
2012-06-11 15:28 ` Luke Diamand
2012-06-11 19:16 ` Ilya Dogolazky
2012-06-11 22:46 ` Luke Diamand
2012-06-12 9:37 ` Ilya Dogolazky
2012-06-12 22:24 ` Pete Wyckoff
2012-06-13 6:58 ` Ilya Dogolazky
2012-06-13 12:56 ` Ilya Dogolazky
2012-06-13 18:00 ` Luke Diamand
2012-06-14 10:23 ` Ilya Dogolazky
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).