threads / patch / 43204

patchUse new .git/config for storing "origin" shortcut repository

Subject: [PATCH] Use new .git/config for storing "origin" shortcut repository

## tl;dr

5 messages between Nov 26, 2006 and Nov 26, 2006. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

Junio C Hamano· Nov 26, 2006, 09:15 UTC · lore

Re: [PATCH] Use new .git/config for storing "origin" shortcut repository

Andy Parkins <andyparkins@gmail.com> writes:
Show 8 quoted lines
> On Sunday 2006, November 26 00:48, Johannes Schindelin wrote:
>
>> This hunk is wrong: "git-repo-config remote.bla.fetch b" will _overwrite_
>> remoter.bla.fetch. To avoid that, you have to use "git repo-config
>> remote.bla.fetch b ^$". (The last argument is a regular expression which
>> has to be matched by the value-to-be-oreplaced.)
>
> This is in git-clone; the config is empty.  What is there to overwrite?

The entry you wrote in the previous iteration in the same loop, perhaps?

Andy Parkins· Nov 26, 2006, 09:35 UTC · re: Junio C Hamano · lore

Rather than use a separate config .git/remotes/ for remote shortcuts, this patch adds the analogous definitions to .git/config using git-repo-config calls.

For example what was previously .git/remotes/origin
  URL: proto://host/path
  Pull: refs/heads/master:refs/heads/origin
Is now added to .git/config as
  [remote "origin"]
  url = proto://host/path
  fetch = refs/heads/master:refs/heads/origin
Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
Oops; you're absolutely right.  I'd not realised that it was the add operation
that needed the special syntax rather than the replace.
 git-clone.sh |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
Show changes to git-clone.sh +4 −5
diff --git a/git-clone.sh b/git-clone.sh
index 9ed4135..19a5a63 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -373,9 +373,8 @@ then
 		*)	origin_track="$remote_top/$origin"
 			git-update-ref "refs/heads/$origin" "$head_sha1" ;;
 		esac &&
-		echo >"$GIT_DIR/remotes/$origin" \
-		"URL: $repo
-Pull: refs/heads/$head_points_at:$origin_track" &&
+		git-repo-config remote."$origin".url "$repo" ^$ &&
+		git-repo-config remote."$origin".fetch "refs/heads/$head_points_at:$origin_track" ^$ &&
 		(cd "$GIT_DIR/$remote_top" && find . -type f -print) |
 		while read dotslref
 		do
@@ -389,8 +388,8 @@ Pull: refs/heads/$head_points_at:$origin_track" &&
 			then
 				continue
 			fi
-			echo "Pull: refs/heads/${name}:$remote_top/${name}"
-		done >>"$GIT_DIR/remotes/$origin" &&
+			git-repo-config remote."$origin".fetch "refs/heads/${name}:$remote_top/${name} ^$"
+		done &&
 		case "$use_separate_remote" in
 		t)
 			rm -f "refs/remotes/$origin/HEAD"
-- 
1.4.4.1.g9fd7
Jakub Narebski· Nov 26, 2006, 09:49 UTC · re: Andy Parkins · lore

Re: [PATCH] Use new .git/config for storing "origin" shortcut repository

Andy Parkins wrote:
> +               git-repo-config remote."$origin".url "$repo" ^$ &&

Is this needed? As of now git supports I think only one URL entry per remote anyway...

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Andy Parkins· Nov 26, 2006, 12:10 UTC · re: Jakub Narebski · lore

Rather than use a separate config .git/remotes/ for remote shortcuts, this patch adds the analagous definitions to .git/config using git-repo-config calls.

For example what was previously .git/remotes/origin
  URL: proto://host/path
  Pull: refs/heads/master:refs/heads/origin
Is now added to .git/config as
  [remote "origin"]
  url = proto://host/path
  fetch = refs/heads/master:refs/heads/origin
Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
You're absolutely correct; fixed.  This patch replaces the previous (again).
 git-clone.sh |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
Show changes to git-clone.sh +4 −5
diff --git a/git-clone.sh b/git-clone.sh
index 9ed4135..7e5dc0f 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -373,9 +373,8 @@ then
 		*)	origin_track="$remote_top/$origin"
 			git-update-ref "refs/heads/$origin" "$head_sha1" ;;
 		esac &&
-		echo >"$GIT_DIR/remotes/$origin" \
-		"URL: $repo
-Pull: refs/heads/$head_points_at:$origin_track" &&
+		git-repo-config remote."$origin".url "$repo" &&
+		git-repo-config remote."$origin".fetch "refs/heads/$head_points_at:$origin_track" ^$ &&
 		(cd "$GIT_DIR/$remote_top" && find . -type f -print) |
 		while read dotslref
 		do
@@ -389,8 +388,8 @@ Pull: refs/heads/$head_points_at:$origin_track" &&
 			then
 				continue
 			fi
-			echo "Pull: refs/heads/${name}:$remote_top/${name}"
-		done >>"$GIT_DIR/remotes/$origin" &&
+			git-repo-config remote."$origin".fetch "refs/heads/${name}:$remote_top/${name}" ^$
+		done &&
 		case "$use_separate_remote" in
 		t)
 			rm -f "refs/remotes/$origin/HEAD"
-- 
1.4.4.1.g9fd7
Johannes Schindelin· Nov 26, 2006, 13:30 UTC · re: Andy Parkins · lore

Re: [PATCH] Use new .git/config for storing "origin" shortcut repository

Hi,
On Sun, 26 Nov 2006, Andy Parkins wrote:
Show 5 quoted lines
> -		echo >"$GIT_DIR/remotes/$origin" \
> -		"URL: $repo
> -Pull: refs/heads/$head_points_at:$origin_track" &&
> +		git-repo-config remote."$origin".url "$repo" &&
> +		git-repo-config remote."$origin".fetch "refs/heads/$head_points_at:$origin_track" ^$ &&

You do not need the "^$" here: this _is_ the first entry. I would even argue that this _has_ to replace whatever might be there (could be introduced by some bogus templates, for example), since the first fetch entry has a special meaning for pull.

Ciao, Dscho

← back to recent threads