Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed1a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.028 X-Spam-Evidence: '*H*': 0.94; '*S*': 0.00; 'feature,': 0.09; 'git': 0.09; 'occasionally': 0.09; 'bug': 0.12; 'useful,': 0.14; 'changes': 0.15; 'master.': 0.16; 'merged': 0.16; 'svn,': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'commit': 0.19; 'aug': 0.22; 'example.': 0.24; 'merge': 0.24; "i've": 0.25; 'changes,': 0.26; 'this:': 0.26; 'header:In-Reply-To:1': 0.27; 'point': 0.28; 'specifically': 0.29; 'feature': 0.29; '[1]': 0.29; 'ideal': 0.29; 'reporting': 0.29; '[2]': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'work.': 0.31; 'that.': 0.31; 'usually': 0.31; 'branches': 0.31; 'closer': 0.31; 'file': 0.32; 'this.': 0.32; 'not.': 0.33; 'actual': 0.34; 'problem': 0.35; "can't": 0.35; 'something': 0.35; 'done.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'really': 0.36; 'are,': 0.36; 'revert': 0.36; 'next': 0.36; 'should': 0.36; 'skip:- 20': 0.37; 'easily': 0.37; 'starting': 0.37; 'being': 0.38; 'branch': 0.38; 'to:addr:python-list': 0.38; 'files': 0.38; 'pm,': 0.38; 'delete': 0.39; 'to:addr:python.org': 0.39; 'changed': 0.39; 'even': 0.60; 'black': 0.61; 'new': 0.61; 'simple': 0.61; 'back': 0.62; 'more': 0.64; 'finish': 0.65; 'subject:, ...': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=7yENiXvKVY3Jm+gErN/kEk5WXt/7LQfyDdP8jBP8AD0=; b=b1GWGSSA0HrbFZ/K+wCl1r6LBr/necpvdqyHpEz2yY5jErLFBdfWE61TCEbIzDJbJG /55UKFSTG7NfhpBPO6gj8x52aeGHxfB4GKqTDBkHG11HzHzkfnzHzzuQGycwwEO3+TRM uJDMah+R87h0zGMk2tbVUtrQJWg0tA1rbCbibbcrfYGSZBBxWh6HSup+ef8TIdb4/a9U iLNS7A4lIWYTVU27Y5vwO5Dz2XgOopiEgtX/YDg02v5jwuvxVOE3zP6wxdx1jsMzrxvC KZu+2grmnRPITNXDQjZgrswyShE8LCYtO5IvW6NLGw+Ku83Dip44sjtqGXBEKB4yx904 VbOg== X-Received: by 10.70.137.98 with SMTP id qh2mr11420553pdb.61.1409277408933; Thu, 28 Aug 2014 18:56:48 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <87tx4xw3ye.fsf@elektro.pacujo.net> References: <57afe6cf-7cc4-4334-9f21-fdb8a6e70f30@googlegroups.com> <53FE22C7.3090806@stoneleaf.us> <87tx4xw3ye.fsf@elektro.pacujo.net> From: Ian Kelly Date: Thu, 28 Aug 2014 19:56:08 -0600 Subject: Re: hg, git, fossil, ... To: Python Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 51 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1409277418 news.xs4all.nl 2850 [2001:888:2000:d::a6]:57761 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:77247 On Wed, Aug 27, 2014 at 11:58 PM, Marko Rauhamaa wrote: > I don't think a working VC system needs to contain much more than that. > Hg stays closer to the simple ideal than git, which really fails at > being a black box. I don't see why git has staging or branches, for > example. I use short-lived development branches in git all the time. Start working on a bug or feature, checkout a new branch specifically for that work. Make changes, commit, make changes, commit, make changes, commit, finish the feature, merge back into master. Once the branch is merged back in, I just delete it. If something else comes up that I need to work on while I'm on a feature branch, I can easily just do a checkpoint commit and create a clean new branch from master to work on. I never do any actual development work on master. I find staging less useful, but it occasionally comes in handy when I'm ready to commit some work but there are these other files I've already changed that should really be part of the next commit. > Or why can't I revert my changes to a file easily? "git checkout " is not easy? > The main problem with hg (and git) is the way cherrypicking is done. > > See these graphics: > > [1] Product-Ver1 > | > | bugfix > | > V feature development > Product-Ver1' ----------------------> Product-Ver2' > > feature development > [2] Product-Ver1 -----------------------> Product-Ver2 > | > | bugfix > | > cherry-picking V > Product-Ver1' <---------------------- Product-Ver2' > > > My beef is this: The starting point and end result of [1] and [2] is > identical. The version histories of Product-Ver1' and Product-Ver2' > should usually also be identical. In hg and git, they are not. In CVS, > they are not. In SVN, they are not. Why should they be identical? If they are, then that means they're not accurately reporting the actual history of the repository. I don't understand why you would even want this.