Hello,
I have to update frequently a mirror of a git repository on Github.
In the meantime, I created branches following a specific pattern (let's say
foo-[1-9]+[0-9]*) on my local mirror.
These branches were created at a given tag and contains internal patches.
I would like to update my mirror frequently and get an exact copy of
Github's repository + the branches containing internal patches.
At the time I created the mirror, let's assume the state of Github's
repository is the below:
C---D branchA
/
A---B---E---F master
\
G---H branchB
v0.1 --> F
We use the software at tag *v0.1* and we created patches for some reasons
to fix the build or the software. The state of the local repository is now:
C---D branchA
/
A---B---E---F master
\ \
\ I---J foo-1
\
G---H branchB
v0.1 --> F
foo-1 has been created and host patches for v0.1
In the meantime, new commits, branches appeared on Github and development
branches were merged and then deleted. The state of Github's repository is
now :
J'---K branchC
/
A---B---E---F---C---D---I' master
\
G---H branchB
v0.1 --> F
v0.2 --> D
branchB has been rebased
branchC has been created
branchA has been merged into master and then deleted
At first I clone the mirror.
git clone --mirror ${url_local_repo}
Then I add Github's repository as remote.
git remote add --mirror=fetch github ${url_github_repo}
Finally I fetch the changes from github.
git fetch --tags --prune github
From ${url_github_repo}
x [deleted] (none) -> branchA
x [deleted] (none) -> foo-1
* [new branch] branchC -> branchC
E..F branchB -> branchB
F..I' master -> master
foo-1 is deleted but I want to keep it.
I tried to screen the fetch using glob (see 10.5 Git Internals - The Refspec
<https://git-scm.com/book/en/v2/Git-Internals-The-Refspec>) syntax but it
does not work.
git fetch --dry-run --prune github '+refs/heads/*:refs/heads/[!f]*'
fatal: Invalid refspec '+refs/heads/*:refs/heads/[!f]*'
What would you suggest ?
--
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.