On 2012-03-02, at 09:31, Sven Van Caekenberghe wrote:

> 
> On 02 Mar 2012, at 01:52, Chris Cunningham wrote:
> 
>> The issue is that Monticello is setup for distributed processing, and
>> allowing for multiple repositories, some of which may not be available
>> to all of the users for a project.  For instance, a project might be
>> developed internally (or on the developers hard-drive) until they feel
>> comfortable distributing the code later.  So, publicly, you get
>> version 12, 17, 34, and 37.  There is no access to the intermediate
>> ones (unless you happen to be the one that created them and didn't
>> release them).  The 'whole ancestry' let's you do diffs off of a
>> version derived from 37 against one derived from 34 - the ancestry can
>> determine that version 34 if 'common', and work from there.  [Note
>> that just numbers aren't enough - the original developer, say, cbc
>> could have version cbc.34, while you could have, say, CamilloBruni.34,
>> but yours is based off of 17 (since you picked up that verison and
>> started working there).  So, merging cbc.37 with CamilloBruni.34 would
>> need to pull down cbc.17 for a good merge to work.]
>> 
>> At least, that's my understanding from long ago discussions.
> 
> This makes sense, but how is this handled with git ?


Git always publishes all versions (unless you squash multiple versions on 
purpose):
- generally you work and commit locally for quite some time
- then you pull the latest changes from a common / remote repository
- you merge with that repository

The main diff to MC is that git will publish all intermediate versions as well,
you can see an example of that here:

        https://github.com/dh83/trex/network

- two people worked on the project [ black  / blue ]
- the blue version development happened in a different / local repos
- yet all the intermediate versions between merge points are in the main 
[black] repos

so, chris, you're absolutely right, that if you want to be able to diff against
the local history you need the complete history.

But I am not completely sure how the internals work with MC, but from my 
research
so far I am almost convinced that versions are found merely by their name. 
Since 
the VersionInfo does not track the repository it relates to.

having that I would say it would suffice to publish all the intermediate 
versions
to a remote repository to get a complete and nice diff behavior with MC, no?

most probably I am missing a piece here ;)

best
cami

Reply via email to