git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp
@ 2016-06-27  7:26 larsxschneider
  2016-06-28 10:26 ` Michael Haggerty
  2016-06-28 18:21 ` Johannes Sixt
  0 siblings, 2 replies; 7+ messages in thread
From: larsxschneider @ 2016-06-27  7:26 UTC (permalink / raw)
  To: git; +Cc: mhagger, luke, vitor.hda, Lars Schneider

From: Lars Schneider <larsxschneider@gmail.com>

Git-P4 used to place temporary refs under "git-p4-tmp". Since 3da1f37
Git checks that all refs are placed under "ref". Instruct Git-P4 to
place temporary refs under "ref/git-p4-tmp". There are no backwards
compatibility considerations as these refs are transient.

All refs under "ref" are shared across all worktrees. This is not
desired for temporary Git-P4 refs and will be adressed in a later patch.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
---

Please note: As mentioned in $gmane/297703 I am no expert for the Git-P4
branch import. I post this patch to make the Git-P4 unit tests working,
again. Critical review highly appreciated :-)

Thanks,
Lars


 git-p4.py                | 2 +-
 t/t9801-git-p4-branch.sh | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/git-p4.py b/git-p4.py
index b6593cf..6b252df 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -2274,7 +2274,7 @@ class P4Sync(Command, P4UserMap):
         self.useClientSpec_from_options = False
         self.clientSpecDirs = None
         self.tempBranches = []
-        self.tempBranchLocation = "git-p4-tmp"
+        self.tempBranchLocation = "refs/git-p4-tmp"
         self.largeFileSystem = None

         if gitConfig('git-p4.largeFileSystem'):
diff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh
index 0aafd03..8f28ed2 100755
--- a/t/t9801-git-p4-branch.sh
+++ b/t/t9801-git-p4-branch.sh
@@ -300,7 +300,7 @@ test_expect_success 'git p4 clone complex branches' '
 		test_path_is_file file2 &&
 		test_path_is_file file3 &&
 		! grep update file2 &&
-		test_path_is_missing .git/git-p4-tmp
+		test_path_is_missing .git/ref/git-p4-tmp
 	)
 '

@@ -352,7 +352,7 @@ test_expect_success 'git p4 sync changes to two branches in the same changelist'
 		test_path_is_file file2 &&
 		test_path_is_file file3 &&
 		! grep update file2 &&
-		test_path_is_missing .git/git-p4-tmp
+		test_path_is_missing .git/ref/git-p4-tmp
 	)
 '

--
2.5.1


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

* Re: [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp
  2016-06-27  7:26 [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp larsxschneider
@ 2016-06-28 10:26 ` Michael Haggerty
  2016-06-28 18:21 ` Johannes Sixt
  1 sibling, 0 replies; 7+ messages in thread
From: Michael Haggerty @ 2016-06-28 10:26 UTC (permalink / raw)
  To: larsxschneider, git; +Cc: luke, vitor.hda

On 06/27/2016 09:26 AM, larsxschneider@gmail.com wrote:
> Git-P4 used to place temporary refs under "git-p4-tmp". Since 3da1f37
> Git checks that all refs are placed under "ref". Instruct Git-P4 to
> place temporary refs under "ref/git-p4-tmp". There are no backwards
> compatibility considerations as these refs are transient.
> 
> All refs under "ref" are shared across all worktrees. This is not
> desired for temporary Git-P4 refs and will be adressed in a later patch.

Thanks for working on this, Lars! Your change looks about what I would
expect, and hits the three places in the source where the string
`git-p4-tmp` appears, so it seems like a very plausible fix.

Michael


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

* Re: [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp
  2016-06-27  7:26 [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp larsxschneider
  2016-06-28 10:26 ` Michael Haggerty
@ 2016-06-28 18:21 ` Johannes Sixt
  2016-06-28 18:49   ` Junio C Hamano
  1 sibling, 1 reply; 7+ messages in thread
From: Johannes Sixt @ 2016-06-28 18:21 UTC (permalink / raw)
  To: larsxschneider, git; +Cc: mhagger, luke, vitor.hda

Am 27.06.2016 um 09:26 schrieb larsxschneider@gmail.com:
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -2274,7 +2274,7 @@ class P4Sync(Command, P4UserMap):
>           self.useClientSpec_from_options = False
>           self.clientSpecDirs = None
>           self.tempBranches = []
> -        self.tempBranchLocation = "git-p4-tmp"
> +        self.tempBranchLocation = "refs/git-p4-tmp"
>           self.largeFileSystem = None
>
>           if gitConfig('git-p4.largeFileSystem'):
> diff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh
> index 0aafd03..8f28ed2 100755
> --- a/t/t9801-git-p4-branch.sh
> +++ b/t/t9801-git-p4-branch.sh
> @@ -300,7 +300,7 @@ test_expect_success 'git p4 clone complex branches' '
>   		test_path_is_file file2 &&
>   		test_path_is_file file3 &&
>   		! grep update file2 &&
> -		test_path_is_missing .git/git-p4-tmp
> +		test_path_is_missing .git/ref/git-p4-tmp

This should be .git/refs/git-p4-tmp, no? Otherwise, this does not test 
what it should test.

>   	)
>   '
>
> @@ -352,7 +352,7 @@ test_expect_success 'git p4 sync changes to two branches in the same changelist'
>   		test_path_is_file file2 &&
>   		test_path_is_file file3 &&
>   		! grep update file2 &&
> -		test_path_is_missing .git/git-p4-tmp
> +		test_path_is_missing .git/ref/git-p4-tmp

Same here.

>   	)
>   '

-- Hannes


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

* Re: [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp
  2016-06-28 18:21 ` Johannes Sixt
@ 2016-06-28 18:49   ` Junio C Hamano
  2016-06-29  7:35     ` [PATCH v2] git-p4: place temporary refs used for branch import under refs/git-p4-tmp larsxschneider
  0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2016-06-28 18:49 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: larsxschneider, git, mhagger, luke, vitor.hda

Johannes Sixt <j6t@kdbg.org> writes:

> Am 27.06.2016 um 09:26 schrieb larsxschneider@gmail.com:
>> --- a/git-p4.py
>> +++ b/git-p4.py
>> @@ -2274,7 +2274,7 @@ class P4Sync(Command, P4UserMap):
>>           self.useClientSpec_from_options = False
>>           self.clientSpecDirs = None
>>           self.tempBranches = []
>> -        self.tempBranchLocation = "git-p4-tmp"
>> +        self.tempBranchLocation = "refs/git-p4-tmp"
>>           self.largeFileSystem = None
>>
>>           if gitConfig('git-p4.largeFileSystem'):
>> diff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh
>> index 0aafd03..8f28ed2 100755
>> --- a/t/t9801-git-p4-branch.sh
>> +++ b/t/t9801-git-p4-branch.sh
>> @@ -300,7 +300,7 @@ test_expect_success 'git p4 clone complex branches' '
>>   		test_path_is_file file2 &&
>>   		test_path_is_file file3 &&
>>   		! grep update file2 &&
>> -		test_path_is_missing .git/git-p4-tmp
>> +		test_path_is_missing .git/ref/git-p4-tmp
>
> This should be .git/refs/git-p4-tmp, no? Otherwise, this does not test
> what it should test.

Yes, and it probably should use "git show-ref --verify" to
future-proof, instead of assuming the file-based ref backend.

>
>>   	)
>>   '
>>
>> @@ -352,7 +352,7 @@ test_expect_success 'git p4 sync changes to two branches in the same changelist'
>>   		test_path_is_file file2 &&
>>   		test_path_is_file file3 &&
>>   		! grep update file2 &&
>> -		test_path_is_missing .git/git-p4-tmp
>> +		test_path_is_missing .git/ref/git-p4-tmp
>
> Same here.
>
>>   	)
>>   '
>
> -- Hannes

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

* [PATCH v2] git-p4: place temporary refs used for branch import under refs/git-p4-tmp
  2016-06-28 18:49   ` Junio C Hamano
@ 2016-06-29  7:35     ` larsxschneider
  2016-07-01 13:45       ` Vitor Antunes
  0 siblings, 1 reply; 7+ messages in thread
From: larsxschneider @ 2016-06-29  7:35 UTC (permalink / raw)
  To: git; +Cc: mhagger, j6t, gitster, Lars Schneider

From: Lars Schneider <larsxschneider@gmail.com>

Git-P4 used to place temporary refs under "git-p4-tmp". Since 3da1f37
Git checks that all refs are placed under "refs". Instruct Git-P4 to
place temporary refs under "refs/git-p4-tmp". There are no backwards
compatibility considerations as these refs are transient.

Use "git show-ref --verify" to check the (non-)existience of the refs
instead of file checks assuming the file-based ref backend.

All refs under "refs" are shared across all worktrees. This is not
desired for temporary Git-P4 refs and will be adressed in a later patch.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
---

Thank you Hannes for the sharp eye!

diff to v1:
* check non-existence of refs/git-p4-tmp instead of ref/git-p4-tmp
* use refs/git-p4-tmp instead of ref/git-p4-tmp in commit message
* check reference with "git show-ref --verify" to be future-proof (thanks Junio!)

Cheers,
Lars


 git-p4.py                | 2 +-
 t/t9801-git-p4-branch.sh | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/git-p4.py b/git-p4.py
index b6593cf..6b252df 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -2274,7 +2274,7 @@ class P4Sync(Command, P4UserMap):
         self.useClientSpec_from_options = False
         self.clientSpecDirs = None
         self.tempBranches = []
-        self.tempBranchLocation = "git-p4-tmp"
+        self.tempBranchLocation = "refs/git-p4-tmp"
         self.largeFileSystem = None

         if gitConfig('git-p4.largeFileSystem'):
diff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh
index 0aafd03..6a86d69 100755
--- a/t/t9801-git-p4-branch.sh
+++ b/t/t9801-git-p4-branch.sh
@@ -300,7 +300,7 @@ test_expect_success 'git p4 clone complex branches' '
 		test_path_is_file file2 &&
 		test_path_is_file file3 &&
 		! grep update file2 &&
-		test_path_is_missing .git/git-p4-tmp
+		test_must_fail git show-ref --verify refs/git-p4-tmp
 	)
 '

@@ -352,7 +352,7 @@ test_expect_success 'git p4 sync changes to two branches in the same changelist'
 		test_path_is_file file2 &&
 		test_path_is_file file3 &&
 		! grep update file2 &&
-		test_path_is_missing .git/git-p4-tmp
+		test_must_fail git show-ref --verify refs/git-p4-tmp
 	)
 '

--
2.5.1


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

* Re: [PATCH v2] git-p4: place temporary refs used for branch import under refs/git-p4-tmp
  2016-06-29  7:35     ` [PATCH v2] git-p4: place temporary refs used for branch import under refs/git-p4-tmp larsxschneider
@ 2016-07-01 13:45       ` Vitor Antunes
  2016-07-01 20:10         ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Vitor Antunes @ 2016-07-01 13:45 UTC (permalink / raw)
  To: git

Hi,

From a git-p4 point of view, I see no problems with this change.

Thanks and regards,
Vitor




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

* Re: [PATCH v2] git-p4: place temporary refs used for branch import under refs/git-p4-tmp
  2016-07-01 13:45       ` Vitor Antunes
@ 2016-07-01 20:10         ` Junio C Hamano
  0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2016-07-01 20:10 UTC (permalink / raw)
  To: Vitor Antunes; +Cc: git

Thanks.

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

end of thread, other threads:[~2016-07-01 20:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-27  7:26 [PATCH v1] git-p4: place temporary refs used for branch import under ref/git-p4-tmp larsxschneider
2016-06-28 10:26 ` Michael Haggerty
2016-06-28 18:21 ` Johannes Sixt
2016-06-28 18:49   ` Junio C Hamano
2016-06-29  7:35     ` [PATCH v2] git-p4: place temporary refs used for branch import under refs/git-p4-tmp larsxschneider
2016-07-01 13:45       ` Vitor Antunes
2016-07-01 20:10         ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).