On Friday 03 November 2006 18:13, Jakub Narebski wrote:
Josef Weidendorfer wrote:
quoted
Other option: Introduce "fetchonly" line which ignores the original
fetch lines in the remote section.
I like this.
That's implementing it:
=================================
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh
@@ -156,6 +156,18 @@ canon_refs_list_for_fetch () {
# Returns list of src: (no store), or src:dst (store)
get_remote_default_refs_for_fetch () {
+ # if there are any branch.${curr_branch}.fetchonly entries,
+ # only use them as default
+ curr_branch=$(git-symbolic-ref HEAD | \
+ sed -e 's|^refs/heads/||')
+ fetchonly_branches=$(git-repo-config \
+ --get-all "branch.${curr_branch}.fetchonly")
+ if test ! -z $fetchonly_branches
+ then
+ canon_refs_list_for_fetch -d "$1" $fetchonly_branches
+ return
+ fi
+
data_source=$(get_data_source "$1")
case "$data_source" in
'' | config-partial | branches-partial)=================================
The problem with this small patch is that with
[remote."gitster"]
url = gitster.example.com:/home/junio/git.git/
fetch = heads/master:remotes/gitster/master
fetch = heads/next:remotes/gitster/next
[branch."master"]
remote = gitster
fetchonly = heads/master:remotes/gitster/master
merge = remotes/gitster/master
and current branch "master", even "git fetch gitster" does not
fetch both branches, which is expected IMHO. We would need to
pass the info that an explicit repository was given down to
get_remote_default_refs_for_fetch().