Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!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.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'say,': 0.05; '(all': 0.07; 'context': 0.07; 'debug': 0.07; 'debugging': 0.07; 'diff': 0.07; 'modified': 0.07; 'subject:Question': 0.07; 'git': 0.09; 'insertion': 0.09; 'statements': 0.09; 'subject:Source': 0.09; 'cc:addr:python-list': 0.11; 'changes': 0.15; '(either': 0.16; '(everything': 0.16; '11:19': 0.16; '24,': 0.16; 'agree.': 0.16; 'extension,': 0.16; 'fond': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'letting': 0.16; 'parameter.': 0.16; 'readable': 0.16; 'simpson': 0.16; 'unchanged': 0.16; 'wrote:': 0.18; 'commit': 0.19; 'cc:addr:python.org': 0.22; 'lets': 0.24; 'mon,': 0.24; 'file.': 0.24; '(or': 0.24; 'cc:2**0': 0.24; 'gets': 0.27; 'header:In-Reply-To:1': 0.27; 'record': 0.27; 'point': 0.28; 'feature': 0.29; 'am,': 0.29; 'related': 0.29; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'lines': 0.31; 'file': 0.32; 'run': 0.32; 'but': 0.35; 'received:google.com': 0.35; 'add': 0.35; 'really': 0.36; 'done': 0.36; 'next': 0.36; "i'll": 0.36; 'similar': 0.36; 'half': 0.37; 'being': 0.38; 'that,': 0.38; 'little': 0.38; 'enough': 0.39; 'either': 0.39; 'consists': 0.60; 'removing': 0.60; 'entire': 0.61; 'simple': 0.61; 'back': 0.62; 'making': 0.63; 'pick': 0.64; 'here': 0.66; 'mar': 0.68; 'repeat': 0.74; 'awesome,': 0.84; 'partial': 0.84; 'subject:Control': 0.84; 'absolutely': 0.87; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=0qCTxl2f2xWHi+w4zZ24AmQU57LJDvueCi4h68pZvJE=; b=HrAIjo7/u8bfOWNtveEKl0Y32FbN1+z60DXXG0iyWaofj49vWmoTahFRPSRWTgHNUZ q3rvY4ZLo7QhD2CcOKyxluW8Es66/jMjVfqSzt6eTyTKroEslCGuf1gdXtIwB+sZYwuy LUB7IcIi2733lS5jvpFEFz9TBxObmQuDBYc8EGZJU26nkWHsnd3myGj2DXRbHR2bvEa6 qurMT5EnVBHA5sK3eV6kSCLLmRAjVrgCRx+KQJOK2NkJCUCZ9dEp3hbNYwpUl7Hk+hJN x1yKIetCTyY3kca8SgX2gjiJEw2t56xEoRel2/iU4Vcm8xd6g+CWJjLsozJL6rDq6ExG 0eiQ== MIME-Version: 1.0 X-Received: by 10.68.34.197 with SMTP id b5mr67914904pbj.16.1395621029072; Sun, 23 Mar 2014 17:30:29 -0700 (PDT) In-Reply-To: <20140324001953.GA70218@cskk.homeip.net> References: <20140324001953.GA70218@cskk.homeip.net> Date: Mon, 24 Mar 2014 11:30:28 +1100 Subject: Re: Question about Source Control From: Chris Angelico Cc: "python-list@python.org" 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: 32 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1395621032 news.xs4all.nl 2963 [2001:888:2000:d::a6]:52536 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:68826 On Mon, Mar 24, 2014 at 11:19 AM, Cameron Simpson wrote: > I'm particularly fond of "hg record" (or the similar extension, "hg > crecord"), which lets you commit just parts of a modified file. > > When I'm in a debugging branch, it gradually turns into a huge diff. > "hg record" lets me commit specific parts of a diff in a single > commit. Every so often I spent a little while cleaning out related > changes that are going to stay so that the final diffness consists > of debug statements and hacks-in-progress; much smaller. > > So I'll pick a file and run an "hg record that-file" and pick all > the diff parts that involve, say, removing some parameter. And in > goes a single commit with just that feature change. Lather, rinse, > repeat for other small concrete changes. > > And then my "hg diff" is back to being managably readable. > Absolutely agree. With git, the same functionality can be done by making use of the staging area; you can either add an entire file (all its changes), or do a partial add with "git add -p" or (more conveniently, but requires a GUI) "git gui". I do that *very* frequently. The only thing I would really like is a simple way to say "stage/commit the lines from here to there"; with git gui, I can either stage an entire hunk (everything until the next point where there's enough unchanged lines that the context breaks) or a single line (either an insertion or a removal). Gets tedious when you want to stage half of a large hunk. But other than that, yes, the functionality is awesome, letting you fidget your edits into readable commits. ChrisA