Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In git, a cherry pick essentially just looks at the diff specified by that revision, then applies that diff as a new commit. The system doesn't record the context (unlike with a merge where you at least know the parents).

darcs system is way too complicated to get into in a short comment reply, but the basic idea is that if you cherry-pick a commit you get all the context along with it. That's because darcs stores a series of patches rather than a series of tree states.

One nice thing about git's way is that since it's just pulling a diff, you can cherry-pick from anything, (e.g. add a remote that's a totally separate unrelated project) as long as the diff applies cleanly.



Thanks for the explanation - very interesting!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: