git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git-p4 and git clone
@ 2010-03-22 23:16 Thomas Kistler
  2010-03-23  0:15 ` Benjamin Meyer
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Kistler @ 2010-03-22 23:16 UTC (permalink / raw)
  To: 'git@vger.kernel.org'

I'm probably missing something fairly fundamental but I'm running into problems with cloning a git-p4 repository:

First, I'm setting up a git-p4 master repository:

    $ cd tmp1
    $ git-p4 clone //foo/bar

Then I'm cloning it through git:

    $ cd tmp2
    $ git clone tmp1/bar

Finally, I'm trying to submit back to p4:

    $ git-p4 submit

This now fails because the remotes/p4/master seems to get lost when doing the "git clone". Is this supposed to work?

-Thomas
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

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

* Re: git-p4 and git clone
  2010-03-22 23:16 git-p4 and git clone Thomas Kistler
@ 2010-03-23  0:15 ` Benjamin Meyer
  2010-03-23 15:37   ` Thomas Kistler
  0 siblings, 1 reply; 7+ messages in thread
From: Benjamin Meyer @ 2010-03-23  0:15 UTC (permalink / raw)
  To: Thomas Kistler; +Cc: 'git@vger.kernel.org'


On Mar 22, 2010, at 7:16 PM, Thomas Kistler wrote:

> I'm probably missing something fairly fundamental but I'm running into problems with cloning a git-p4 repository:
> 
> First, I'm setting up a git-p4 master repository:
> 
>    $ cd tmp1
>    $ git-p4 clone //foo/bar
> 
> Then I'm cloning it through git:
> 
>    $ cd tmp2
>    $ git clone tmp1/bar
> 
> Finally, I'm trying to submit back to p4:
> 
>    $ git-p4 submit
> 
> This now fails because the remotes/p4/master seems to get lost when doing the "git clone". Is this supposed to work?
> 
> -Thomas

There is a -import-local option you can use.  Then the p4/master branch is local and when you do the second clone you will get the p4/master branch.

-Benjamin Meyer

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

* RE: git-p4 and git clone
  2010-03-23  0:15 ` Benjamin Meyer
@ 2010-03-23 15:37   ` Thomas Kistler
  2010-03-23 17:38     ` Tor Arvid Lund
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Kistler @ 2010-03-23 15:37 UTC (permalink / raw)
  To: 'Benjamin Meyer'; +Cc: 'git@vger.kernel.org'

That doesn't seem to work. With --import-local, I can't even submit back from the original repository.

    $ cd tmp1
    $ git-p4 clone --import-local //foo/bar
    $ cd bar
    $ git checkout p4/master
    $ git-p4 submit --verbose
    
Reading pipe: git name-rev HEAD
Reading pipe: git config git-p4.allowSubmit
Reading pipe: git rev-parse --symbolic  --remotes
Reading pipe: git cat-file commit HEAD~0
Reading pipe: git cat-file commit HEAD~1
fatal: Not a valid object name HEAD~1 


-----Original Message-----
From: Benjamin Meyer [mailto:ben@meyerhome.net] 
Sent: Monday, March 22, 2010 5:15 PM
To: Thomas Kistler
Cc: 'git@vger.kernel.org'
Subject: Re: git-p4 and git clone


On Mar 22, 2010, at 7:16 PM, Thomas Kistler wrote:

> I'm probably missing something fairly fundamental but I'm running into problems with cloning a git-p4 repository:
> 
> First, I'm setting up a git-p4 master repository:
> 
>    $ cd tmp1
>    $ git-p4 clone //foo/bar
> 
> Then I'm cloning it through git:
> 
>    $ cd tmp2
>    $ git clone tmp1/bar
> 
> Finally, I'm trying to submit back to p4:
> 
>    $ git-p4 submit
> 
> This now fails because the remotes/p4/master seems to get lost when doing the "git clone". Is this supposed to work?
> 
> -Thomas

There is a -import-local option you can use.  Then the p4/master branch is local and when you do the second clone you will get the p4/master branch.

-Benjamin Meyer
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

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

* Re: git-p4 and git clone
  2010-03-23 15:37   ` Thomas Kistler
@ 2010-03-23 17:38     ` Tor Arvid Lund
  2010-03-23 18:02       ` Thomas Kistler
  0 siblings, 1 reply; 7+ messages in thread
From: Tor Arvid Lund @ 2010-03-23 17:38 UTC (permalink / raw)
  To: Thomas Kistler; +Cc: Benjamin Meyer, git@vger.kernel.org

On Tue, Mar 23, 2010 at 4:37 PM, Thomas Kistler <tkistler@nvidia.com> wrote:
> That doesn't seem to work. With --import-local, I can't even submit back from the original repository.

Hi.

For me it works in this scenario:
If your perforce depot is A, you "git-p4 clone --import-local" that
into B, then git clone B into C. From C you should be able to do
git-p4 submit.

So, my normal recipe (if anyones interested) is to not use B for
anything other than importing from p4 and functioning as a clone
source. Like so:

$ git-p4 clone --import-local //depot/A@all B
$ mv B/.git B.git
$ rm -rf B
$ cd B.git
$ git config core.bare true
$ rm refs/heads/master
$ echo ref: refs/heads/p4/master > HEAD

(Then I have a script that does "git-p4 sync --import-local" every so
often in this repo)

... And then on my working computer, I do:

$ git clone user@remote:B.git C
$ cd C
$ [work, work, work, git commit]
$ git-p4 submit

...And every so often:
$ git-p4 sync

(Disclaimer: recipe from memory... might not be 100% correct :-/)

-Tor Arvid-

>    $ cd tmp1
>    $ git-p4 clone --import-local //foo/bar
>    $ cd bar
>    $ git checkout p4/master
>    $ git-p4 submit --verbose
>
> Reading pipe: git name-rev HEAD
> Reading pipe: git config git-p4.allowSubmit
> Reading pipe: git rev-parse --symbolic  --remotes
> Reading pipe: git cat-file commit HEAD~0
> Reading pipe: git cat-file commit HEAD~1
> fatal: Not a valid object name HEAD~1
>
>
> -----Original Message-----
> From: Benjamin Meyer [mailto:ben@meyerhome.net]
> Sent: Monday, March 22, 2010 5:15 PM
> To: Thomas Kistler
> Cc: 'git@vger.kernel.org'
> Subject: Re: git-p4 and git clone
>
>
> On Mar 22, 2010, at 7:16 PM, Thomas Kistler wrote:
>
>> I'm probably missing something fairly fundamental but I'm running into problems with cloning a git-p4 repository:
>>
>> First, I'm setting up a git-p4 master repository:
>>
>>    $ cd tmp1
>>    $ git-p4 clone //foo/bar
>>
>> Then I'm cloning it through git:
>>
>>    $ cd tmp2
>>    $ git clone tmp1/bar
>>
>> Finally, I'm trying to submit back to p4:
>>
>>    $ git-p4 submit
>>
>> This now fails because the remotes/p4/master seems to get lost when doing the "git clone". Is this supposed to work?
>>
>> -Thomas
>
> There is a -import-local option you can use.  Then the p4/master branch is local and when you do the second clone you will get the p4/master branch.
>
> -Benjamin Meyer
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information.  Any unauthorized review, use, disclosure or distribution
> is prohibited.  If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

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

* RE: git-p4 and git clone
  2010-03-23 17:38     ` Tor Arvid Lund
@ 2010-03-23 18:02       ` Thomas Kistler
  2010-03-23 18:11         ` Tor Arvid Lund
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Kistler @ 2010-03-23 18:02 UTC (permalink / raw)
  To: 'Tor Arvid Lund'; +Cc: Benjamin Meyer, git@vger.kernel.org

That doesn't work for me. You can't submit from B because there are no remotes in that repository and p4BranchesInGit() is looking for remotes only.
You also cannot submit from C because the remotes are named origin/p4/master whereas p4BranchesInGit() is looking for ^p4/.

-Thomas

-----Original Message-----
From: Tor Arvid Lund [mailto:torarvid@gmail.com] 
Sent: Tuesday, March 23, 2010 10:38 AM
To: Thomas Kistler
Cc: Benjamin Meyer; git@vger.kernel.org
Subject: Re: git-p4 and git clone

On Tue, Mar 23, 2010 at 4:37 PM, Thomas Kistler <tkistler@nvidia.com> wrote:
> That doesn't seem to work. With --import-local, I can't even submit back from the original repository.

Hi.

For me it works in this scenario:
If your perforce depot is A, you "git-p4 clone --import-local" that
into B, then git clone B into C. From C you should be able to do
git-p4 submit.

So, my normal recipe (if anyones interested) is to not use B for
anything other than importing from p4 and functioning as a clone
source. Like so:

$ git-p4 clone --import-local //depot/A@all B
$ mv B/.git B.git
$ rm -rf B
$ cd B.git
$ git config core.bare true
$ rm refs/heads/master
$ echo ref: refs/heads/p4/master > HEAD

(Then I have a script that does "git-p4 sync --import-local" every so
often in this repo)

... And then on my working computer, I do:

$ git clone user@remote:B.git C
$ cd C
$ [work, work, work, git commit]
$ git-p4 submit

...And every so often:
$ git-p4 sync

(Disclaimer: recipe from memory... might not be 100% correct :-/)

-Tor Arvid-

>    $ cd tmp1
>    $ git-p4 clone --import-local //foo/bar
>    $ cd bar
>    $ git checkout p4/master
>    $ git-p4 submit --verbose
>
> Reading pipe: git name-rev HEAD
> Reading pipe: git config git-p4.allowSubmit
> Reading pipe: git rev-parse --symbolic  --remotes
> Reading pipe: git cat-file commit HEAD~0
> Reading pipe: git cat-file commit HEAD~1
> fatal: Not a valid object name HEAD~1
>
>
> -----Original Message-----
> From: Benjamin Meyer [mailto:ben@meyerhome.net]
> Sent: Monday, March 22, 2010 5:15 PM
> To: Thomas Kistler
> Cc: 'git@vger.kernel.org'
> Subject: Re: git-p4 and git clone
>
>
> On Mar 22, 2010, at 7:16 PM, Thomas Kistler wrote:
>
>> I'm probably missing something fairly fundamental but I'm running into problems with cloning a git-p4 repository:
>>
>> First, I'm setting up a git-p4 master repository:
>>
>>    $ cd tmp1
>>    $ git-p4 clone //foo/bar
>>
>> Then I'm cloning it through git:
>>
>>    $ cd tmp2
>>    $ git clone tmp1/bar
>>
>> Finally, I'm trying to submit back to p4:
>>
>>    $ git-p4 submit
>>
>> This now fails because the remotes/p4/master seems to get lost when doing the "git clone". Is this supposed to work?
>>
>> -Thomas
>
> There is a -import-local option you can use.  Then the p4/master branch is local and when you do the second clone you will get the p4/master branch.
>
> -Benjamin Meyer
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information.  Any unauthorized review, use, disclosure or distribution
> is prohibited.  If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

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

* Re: git-p4 and git clone
  2010-03-23 18:02       ` Thomas Kistler
@ 2010-03-23 18:11         ` Tor Arvid Lund
  2010-04-08 15:55           ` cherry pick into remote / git-p4 Thomas Kistler
  0 siblings, 1 reply; 7+ messages in thread
From: Tor Arvid Lund @ 2010-03-23 18:11 UTC (permalink / raw)
  To: Thomas Kistler; +Cc: Benjamin Meyer, git@vger.kernel.org

On Tue, Mar 23, 2010 at 7:02 PM, Thomas Kistler <tkistler@nvidia.com> wrote:
> That doesn't work for me. You can't submit from B because there are no remotes in that repository and p4BranchesInGit() is looking for remotes only.
> You also cannot submit from C because the remotes are named origin/p4/master whereas p4BranchesInGit() is looking for ^p4/.

Hmm, ok. Submitting from B doesn't work for me either, as I said in my
previous mail... Tried my recipe now. I get the same problem with C.
The "solution" I found was to run a "git-p4 sync" from C. Then git-p4
will create remotes/p4/master in addition to remotes/origin/*. Then it
worked for me.

-Tor Arvid-

> -Thomas
>
> -----Original Message-----
> From: Tor Arvid Lund [mailto:torarvid@gmail.com]
> Sent: Tuesday, March 23, 2010 10:38 AM
> To: Thomas Kistler
> Cc: Benjamin Meyer; git@vger.kernel.org
> Subject: Re: git-p4 and git clone
>
> On Tue, Mar 23, 2010 at 4:37 PM, Thomas Kistler <tkistler@nvidia.com> wrote:
>> That doesn't seem to work. With --import-local, I can't even submit back from the original repository.
>
> Hi.
>
> For me it works in this scenario:
> If your perforce depot is A, you "git-p4 clone --import-local" that
> into B, then git clone B into C. From C you should be able to do
> git-p4 submit.
>
> So, my normal recipe (if anyones interested) is to not use B for
> anything other than importing from p4 and functioning as a clone
> source. Like so:
>
> $ git-p4 clone --import-local //depot/A@all B
> $ mv B/.git B.git
> $ rm -rf B
> $ cd B.git
> $ git config core.bare true
> $ rm refs/heads/master
> $ echo ref: refs/heads/p4/master > HEAD
>
> (Then I have a script that does "git-p4 sync --import-local" every so
> often in this repo)
>
> ... And then on my working computer, I do:
>
> $ git clone user@remote:B.git C
> $ cd C
> $ [work, work, work, git commit]
> $ git-p4 submit
>
> ...And every so often:
> $ git-p4 sync
>
> (Disclaimer: recipe from memory... might not be 100% correct :-/)
>
> -Tor Arvid-
>
>>    $ cd tmp1
>>    $ git-p4 clone --import-local //foo/bar
>>    $ cd bar
>>    $ git checkout p4/master
>>    $ git-p4 submit --verbose
>>
>> Reading pipe: git name-rev HEAD
>> Reading pipe: git config git-p4.allowSubmit
>> Reading pipe: git rev-parse --symbolic  --remotes
>> Reading pipe: git cat-file commit HEAD~0
>> Reading pipe: git cat-file commit HEAD~1
>> fatal: Not a valid object name HEAD~1
>>
>>
>> -----Original Message-----
>> From: Benjamin Meyer [mailto:ben@meyerhome.net]
>> Sent: Monday, March 22, 2010 5:15 PM
>> To: Thomas Kistler
>> Cc: 'git@vger.kernel.org'
>> Subject: Re: git-p4 and git clone
>>
>>
>> On Mar 22, 2010, at 7:16 PM, Thomas Kistler wrote:
>>
>>> I'm probably missing something fairly fundamental but I'm running into problems with cloning a git-p4 repository:
>>>
>>> First, I'm setting up a git-p4 master repository:
>>>
>>>    $ cd tmp1
>>>    $ git-p4 clone //foo/bar
>>>
>>> Then I'm cloning it through git:
>>>
>>>    $ cd tmp2
>>>    $ git clone tmp1/bar
>>>
>>> Finally, I'm trying to submit back to p4:
>>>
>>>    $ git-p4 submit
>>>
>>> This now fails because the remotes/p4/master seems to get lost when doing the "git clone". Is this supposed to work?
>>>
>>> -Thomas
>>
>> There is a -import-local option you can use.  Then the p4/master branch is local and when you do the second clone you will get the p4/master branch.
>>
>> -Benjamin Meyer
>> -----------------------------------------------------------------------------------
>> This email message is for the sole use of the intended recipient(s) and may contain
>> confidential information.  Any unauthorized review, use, disclosure or distribution
>> is prohibited.  If you are not the intended recipient, please contact the sender by
>> reply email and destroy all copies of the original message.
>> -----------------------------------------------------------------------------------
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>

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

* cherry pick into remote / git-p4
  2010-03-23 18:11         ` Tor Arvid Lund
@ 2010-04-08 15:55           ` Thomas Kistler
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Kistler @ 2010-04-08 15:55 UTC (permalink / raw)
  To: git@vger.kernel.org

Before doing a lot of work I wanted to see whether someone has a simple solution to cherry pick a particular commit into a remote branch (and by that I mean the refs/remote branch in the local repository and not the remote repository).

Here is some more background. In our setup, we periodically bunch git changes up and submit them back to an external perforce repository (using a modified version of git-p4). When those changes come back into the git repository (using git-p4 sync) we see the combined changes rather than the individual ones, which can lead to rebase conflicts. So rather than importing the combined changes, we'd like to replay the individual changes from the master branch if present (we store the git commit ids as part of our perforce commit message so we know which ids to replay). But there doesn't seem to be an easy way to do that.

-Thomas 

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

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

end of thread, other threads:[~2010-04-08 16:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-22 23:16 git-p4 and git clone Thomas Kistler
2010-03-23  0:15 ` Benjamin Meyer
2010-03-23 15:37   ` Thomas Kistler
2010-03-23 17:38     ` Tor Arvid Lund
2010-03-23 18:02       ` Thomas Kistler
2010-03-23 18:11         ` Tor Arvid Lund
2010-04-08 15:55           ` cherry pick into remote / git-p4 Thomas Kistler

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