Thanks a bunch for the detailed explanation of how git object model works, Jochen! Looks like now we can put "git branch deletion data loss" fiction to rest.
Cos On Thu, Jul 23, 2015 at 07:11AM, Jochen Theodorou wrote: > Am 23.07.2015 05:13, schrieb Ted Dunning: > >On Wed, Jul 22, 2015 at 6:54 PM, Valentin Kulichenko < > >valentin.kuliche...@gmail.com> wrote: > > > >>>Concerns have been raised about the people behind the actual commits, > >>that > >>>seems to be left open ? > >>> > >> > >>The identity of the committers is never lost (at least to my knowledge). We > >>actually have the opposite problem of too many commits happening in > >>different branches because of our branching policy which requires a > >>separate branch for every ticket. > >> > > > >How are they preserved when the bug branch is deleted as per guidelines? > > just to give the general idea and not claiming that the Ignite > people do it like that.. normally what you do is the following: > > 1) create a bug-fix branch based on master > 2) commit your changes to the bug-fix branch > 3) test/verify by the community and CI > 4) merge bug-fix branch to master > 5) delete bug-fix branch > > In this process there is no loss of commits, the information stays > in the master branch. In git you normally keep only the branches > people work on, or you use tags. > > Step 4 can be done in multiple ways. Of course normally the first > choice is the git based merge, but you can also work with a patch > set (the author/date information is not lost by this) or cherry-pick > (which is like duplicating the commit on another branch). branching > off and merging again, can be seen in tools like for example gitk or > with for example "git log --graph". Examples can for example be seen > on > http://stackoverflow.com/questions/1838873/visualizing-branch-topology-in-git > using different tools. Noteworthy here is that normal commits are > handled similar to branches. In other words, git does not really > know a concept like a branch as it was with svn/cvs. Instead it is > an elementary part of the system, that every commit has a parent and > possibly a child and from this results a commit graph. A branch is > only a commit noted as head. Deleting a branch thus means only to > delete that meta information. And unlike CVS/SVN git is based on a > database. Even if you do "git rm" to delete a file, it is still in > the database and not removed from history. > > bye blackdrag > > -- > Jochen "blackdrag" Theodorou > blog: http://blackdragsview.blogspot.com/ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > For additional commands, e-mail: general-h...@incubator.apache.org >
signature.asc
Description: Digital signature