Mirroring repository state, with branches and submodules.

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Mirroring repository state, with branches and submodules.

From: Toby White <hidden>
Date: 2016-06-15 22:46:24

I have a short script which does the following for a remote git  
rpository:

Clones it (checking out a working tree)
Makes tracking local branches for all remote branches
Init/updates all submodules.

This gives me an up-to-date mirror of a remote repository. I treat  
this as essentially read-only.

What I now want to do is have some command which will update this  
local mirror to reflect exactly the state of the remote mirror;
even when the remote mirror may have rebased history.

So far, I'm doing the following:

git fetch
for BRANCH in $(git branch -r | cut -d / -f 2); do
   git checkout $BRANCH
   git reset --hard origin/$BRANCH
done
git submodule update --init

but I'm not sure if that's actually the right way to do it, or if I'm  
missing any corner cases. Am I safe to use it?

Thanks,
Toby

Re: Mirroring repository state, with branches and submodules.

From: Miklos Vajna <hidden>
Date: 2016-06-15 22:46:24

On Tue, Mar 17, 2009 at 03:21:40PM +0000, Toby White [off-list ref] wrote:
git fetch
for BRANCH in $(git branch -r | cut -d / -f 2); do
   git checkout $BRANCH
   git reset --hard origin/$BRANCH
done
git submodule update --init
First, I think you don't handle the case when you have multiple
remotes. I don't know if this is a problem for you or not.

Second, use plumbing in scripts, git for-each-ref has a stable output
format, while git branch may change.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help