Thread (9 messages) flat view 9 messages, 5 authors, 2016-06-15

Re: How to check new commit availability without full fetch?

From: Leo Razoumov <hidden>
Date: 2016-06-15 22:48:00

On 2010-01-11, Nicolas Pitre [off-list ref] wrote:
On Mon, 11 Jan 2010, Leo Razoumov wrote:

 > On 2010-01-10, Nicolas Pitre [off-list ref] wrote:
 > >
 > > You still don't answer my question though.  Again, _why_ do you need to
 > >  know about remote commit availability without fetching them?
 > >
 >
 > I use git to track almost all my data (code and otherwise) and spread
 > it between several computers. I end up with several local repos having
 > the same local branches. It happens once in a while that I fetch into
 > a given remote/foo from several local foo branches from different
 > machines and the operation fails. It happens because the commits have
 > not been yet consistently distributed among the repos. To do the
 > forensics and figure out who should update whom first I need a quick
 > and non-destructive way to fetch dry-run.


There is probably something awkward about your setup then.

 Normally you should have a remote description for any of the remote
 repositories you fetch from.  So if you have, say, remote machine_a with
 repo foo, machine_b with repo bar, and machine_c with repo baz, then
 fetching any of those will _only_ mirror locally the state of those
 remote repositories.  There is no ordering required as there can't be
 any conflicts in the mere fact of mirroring what the other guys have.
 That's what remote tracking branches are for: they follow the state of a
 remote repository and are never altered by local changes.  And you can
 have as many of those as you wish and they will never conflict with each
 other as each remote description is independent. And this is true
 whether or not the remote repository lives on the same machine (that
 would be a remote directory in that case).
Setup might be, indeed, awkward but it handles very diverse tasks.
As I said in my earlier emails different repos fetch into the *same* remote/foo.
So there could be conflicts and using fetch -f could cause loss of data.

Before switching to git I used mercurial for the same purpose and it
has command that are equivalent to fetch --dry-run.

--Leo--
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help