Re: fetch for bare repository
On Fri, Jan 13, 2012 at 05:54:31PM +0400, Dmitry A. Ashkadov wrote:
Show 14 quoted lines
> 13.01.2012 17:40, Carlos Martín Nieto пишет:
> >On Fri, Jan 13, 2012 at 02:42:03PM +0400, Dmitry A. Ashkadov wrote:
> >>Hello!
> >>
> >>I can't understand how to fetch branches from external repository
> >>for bare repository.
> >What you probably want is a mirror (git clone --mirror). Unless you
> >tell git that you want a mirror, it's going to assume that you want a
> >bare repo to push your own changes up to it. Such a repo has no need
> >to be kept up to date, so clone doesn't set up any fetch refspecs.
>
> I don't have access to an origin repository. So, I need bare
> repository and push changes up to it. So, I think the word "mirror"
> isn't applicable to private repository.
When you say access here, do you mean that you can't push to it? When I say access later on, it means being able to fetch from it. Otherwise I don't see how you could have cloned from it. If your private repository's braches to reflect what's upstream, I'd call that a mirror.
Show 12 quoted lines
>
> >Stepping back, do you need to fetch those branches into the private
> >repo? If you still have access to the main repo and that's where the
> >main project development is happening, why not use upstream's repo to
> >get those changes to your local repo (as in the one you use to work)?
> >It sounds like you're trying to replicate a centralised VCS'
> >workflow. Git works like a network and you can merge a branch from
> >upstream if you need to and then push to the private repo.
>
> Yes, I can add one more remote to my local repository, then fetch
> changes from it and push it to private repository. But I thought
> that update private repository is the best way.
Best way to achieve what? If you want your private repo to reflect what's upstream, doing the inital clone with --mirror (or setting the remote.origin.fetch config variable to "+refs/*:refs/*", which is the main difference) will let you run 'git fetch' on that repo and get the changes.
But what I was asking was whether you actually need to bother with that operation. If you need to merge or rebase from upstream, a push will include those new changes, as they're now in your branch, so what advantage do you get from copying those branches from upstream if they're just the same?
cmn