* [PATCH] fetch: if not fetching from default remote, ignore default merge
@ 2007-10-11 0:47 Johannes Schindelin
2007-10-11 6:39 ` Johannes Sixt
0 siblings, 1 reply; 4+ messages in thread
From: Johannes Schindelin @ 2007-10-11 0:47 UTC (permalink / raw)
To: git, hjemli, gitster
When doing "git fetch <remote>" on a remote that does not have the
branch referenced in branch.<current-branch>.merge, git fetch failed.
It failed because it tried to add the "merge" ref to the refs to be
fetched.
Fix that. And add a test case.
Incidentally, this unconvered a bug in our own test suite, where
"git pull <some-path>" was expected to merge the ref given in the
defaults, even if not pulling from the default remote.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
builtin-fetch.c | 8 +++++++-
t/t5510-fetch.sh | 8 ++++++++
t/t5700-clone-reference.sh | 4 ++--
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/builtin-fetch.c b/builtin-fetch.c
index cf7498b..ca4de9f 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -105,7 +105,13 @@ static struct ref *get_ref_map(struct transport *transport,
!remote->fetch[0].pattern)
ref_map->merge = 1;
}
- if (has_merge)
+ /*
+ * if the remote we're fetching from is the same
+ * as given in branch.<name>.remote, we add the
+ * ref given in branch.<name>.merge, too.
+ */
+ if (has_merge && !strcmp(branch->remote_name,
+ remote->name))
add_merge_config(&ref_map, remote_refs, branch, &tail);
} else {
ref_map = get_remote_ref(remote_refs, "HEAD");
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 73a4e3c..755d809 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -188,4 +188,12 @@ test_expect_success 'push via rsync' '
'
}
+test_expect_success 'fetch with a non-applying branch.<name>.merge' '
+ git config branch.master.remote yeti &&
+ git config branch.master.merge refs/heads/bigfoot &&
+ git config remote.blub.url one &&
+ git config remote.blub.fetch 'refs/heads/*:refs/remotes/one/*' &&
+ git fetch blub
+'
+
test_done
diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh
index 4e93aaa..b6a5486 100755
--- a/t/t5700-clone-reference.sh
+++ b/t/t5700-clone-reference.sh
@@ -38,7 +38,7 @@ cd "$base_dir"
test_expect_success 'pulling from reference' \
'cd C &&
-git pull ../B'
+git pull ../B master'
cd "$base_dir"
@@ -61,7 +61,7 @@ test_expect_success 'existence of info/alternates' \
cd "$base_dir"
test_expect_success 'pulling from reference' \
-'cd D && git pull ../B'
+'cd D && git pull ../B master'
cd "$base_dir"
--
1.5.3.4.1169.g5fb8d
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] fetch: if not fetching from default remote, ignore default merge
2007-10-11 0:47 [PATCH] fetch: if not fetching from default remote, ignore default merge Johannes Schindelin
@ 2007-10-11 6:39 ` Johannes Sixt
2007-10-11 11:34 ` Johannes Schindelin
2007-10-11 11:35 ` [PATCH v2] " Johannes Schindelin
0 siblings, 2 replies; 4+ messages in thread
From: Johannes Sixt @ 2007-10-11 6:39 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git, hjemli, gitster
Johannes Schindelin schrieb:
> +test_expect_success 'fetch with a non-applying branch.<name>.merge' '
> + git config branch.master.remote yeti &&
> + git config branch.master.merge refs/heads/bigfoot &&
> + git config remote.blub.url one &&
> + git config remote.blub.fetch 'refs/heads/*:refs/remotes/one/*' &&
Better use double-quotes around the refspecs.
> + git fetch blub
> +'
> +
-- Hannes
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fetch: if not fetching from default remote, ignore default merge
2007-10-11 6:39 ` Johannes Sixt
@ 2007-10-11 11:34 ` Johannes Schindelin
2007-10-11 11:35 ` [PATCH v2] " Johannes Schindelin
1 sibling, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2007-10-11 11:34 UTC (permalink / raw)
To: Johannes Sixt; +Cc: git, hjemli, gitster
Hi,
On Thu, 11 Oct 2007, Johannes Sixt wrote:
> Johannes Schindelin schrieb:
> > +test_expect_success 'fetch with a non-applying branch.<name>.merge' '
> > + git config branch.master.remote yeti &&
> > + git config branch.master.merge refs/heads/bigfoot &&
> > + git config remote.blub.url one &&
> > + git config remote.blub.fetch 'refs/heads/*:refs/remotes/one/*' &&
>
> Better use double-quotes around the refspecs.
Hehe, "oops!".
Although in this case we could even use the string unquoted (which I
indeed did!), since there is no chance that there is a matching file in
t/trash/.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] fetch: if not fetching from default remote, ignore default merge
2007-10-11 6:39 ` Johannes Sixt
2007-10-11 11:34 ` Johannes Schindelin
@ 2007-10-11 11:35 ` Johannes Schindelin
1 sibling, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2007-10-11 11:35 UTC (permalink / raw)
To: Johannes Sixt; +Cc: git, hjemli, gitster
When doing "git fetch <remote>" on a remote that does not have the
branch referenced in branch.<current-branch>.merge, git fetch failed.
It failed because it tried to add the "merge" ref to the refs to be
fetched.
Fix that. And add a test case.
Incidentally, this unconvered a bug in our own test suite, where
"git pull <some-path>" was expected to merge the ref given in the
defaults, even if not pulling from the default remote.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
builtin-fetch.c | 8 +++++++-
t/t5510-fetch.sh | 8 ++++++++
t/t5700-clone-reference.sh | 4 ++--
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/builtin-fetch.c b/builtin-fetch.c
index cf7498b..ca4de9f 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -105,7 +105,13 @@ static struct ref *get_ref_map(struct transport *transport,
!remote->fetch[0].pattern)
ref_map->merge = 1;
}
- if (has_merge)
+ /*
+ * if the remote we're fetching from is the same
+ * as given in branch.<name>.remote, we add the
+ * ref given in branch.<name>.merge, too.
+ */
+ if (has_merge && !strcmp(branch->remote_name,
+ remote->name))
add_merge_config(&ref_map, remote_refs, branch, &tail);
} else {
ref_map = get_remote_ref(remote_refs, "HEAD");
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 73a4e3c..1f398bc 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -188,4 +188,12 @@ test_expect_success 'push via rsync' '
'
}
+test_expect_success 'fetch with a non-applying branch.<name>.merge' '
+ git config branch.master.remote yeti &&
+ git config branch.master.merge refs/heads/bigfoot &&
+ git config remote.blub.url one &&
+ git config remote.blub.fetch "refs/heads/*:refs/remotes/one/*" &&
+ git fetch blub
+'
+
test_done
diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh
index 4e93aaa..b6a5486 100755
--- a/t/t5700-clone-reference.sh
+++ b/t/t5700-clone-reference.sh
@@ -38,7 +38,7 @@ cd "$base_dir"
test_expect_success 'pulling from reference' \
'cd C &&
-git pull ../B'
+git pull ../B master'
cd "$base_dir"
@@ -61,7 +61,7 @@ test_expect_success 'existence of info/alternates' \
cd "$base_dir"
test_expect_success 'pulling from reference' \
-'cd D && git pull ../B'
+'cd D && git pull ../B master'
cd "$base_dir"
--
1.5.3.4.1174.gcd0d6-dirty
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-10-11 11:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-11 0:47 [PATCH] fetch: if not fetching from default remote, ignore default merge Johannes Schindelin
2007-10-11 6:39 ` Johannes Sixt
2007-10-11 11:34 ` Johannes Schindelin
2007-10-11 11:35 ` [PATCH v2] " Johannes Schindelin
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).