On Tue, Jun 8, 2010 at 11:55 PM, Tobias Burnus <bur...@net-b.de> wrote:
> On 06/08/2010 05:42 PM, H.J. Lu wrote:
>>> Think about mercurial or git.  Every one can commit on his/her own
>>> local repository, and "publish" his/her repository.  [...]
>>
>> git is an excellent tool to create and share patches. Maybe we should
>> have an open gcc git mirror with gitweb and every contributor can create
>> his/her own branches and publish them.
>
> Well, we do: Goto http://repo.or.cz/w/official-gcc.git and click on "fork".
>
> I do like Git, but Git seems to make mostly sense if you have a small
> project on which you are working. If you have only a small patch (or a
> collection of small and unrelated patches), it won't help much.
>
> Additionally, I do not think that pulling from a branch will happen -
> rather that one creates patches from an (published or unpublished) git
> repository and submits them like normal.
>
> Thus, I do not think it helps with patch reviewing/tracking, though I
> believe it helps with developing patches.
>
> Tobias,
> who happily uses his private GCC git repository, which does not diverge
> much from the git master.
>

The philosophy behind DVCS(mercurial or git) is that,  any software
project is an evolution tree, like the one of the lives of Planet
Earth.  This evolution tree has a root, which is the UCA(Ultimate
Common Ancestor) of all lives. For the lives of Planet Earth, UCA may
be some kind of ancient micro-organism. For a software, UCA would be
the revision zero.

Everyone can make change to any revision, do some minor improvement,
to let the evolution tree to branch and grow.  Everyone can merge
other people's valuable branch/change in his/her own branch, this is
like bi-sex reproduction. Everyone can make his/her branch more
perfect to gain some survival advantage. The changes that will be in
the final releases is those whose branches have been merged into
trunk.  Everyone strive to let his/her branch be merged, otherwise
his/her branch will die. If someone's branch are rejected, he/she can
try to redo his change, maybe from an newer trunk revision. When
his/her changes meet some criteria, he/she can ask someone to review
his branches and selectively merge.

The died branch are never lost, it is stored in the repositories
persistently, and can revive at any time.

If someone's branch diverge far from the trunk, it may be very hard to
merge. So branches from a relatively newer trunk revision and have not
too many changes will be desirable.

In this method, you only need to note the branch(and its URL) to
review, instead of attach the patches.



By the way, I found mercurial are easier to learn and use.





-- 
Chiheng Xu
Wuhan,China

Reply via email to