Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #68790
| Date | 2014-03-22 13:49 -0500 |
|---|---|
| From | Tim Chase <python.list@tim.thechases.com> |
| Subject | Re: Question about Source Control |
| References | <lg6s09$irl$1@ger.gmane.org> <bortetF7t42U1@mid.individual.net> <lgasdj$93f$1@ger.gmane.org> <mailman.8270.1395195147.18130.python-list@python.org> <532dc915$0$24914$e4fe514c@dreader36.news.xs4all.nl> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.8405.1395514152.18130.python-list@python.org> (permalink) |
On 2014-03-22 17:32, Albert van der Horst wrote:
> >I don't know if this is a hg-vs-git way of thinking, but I tend to
> >frequently commit things on a private development branch regardless
> >of brokenness, but once I get it working, I flatten & clean up
> >those changes ("rebase" in git terms, which I believe has been
> >adopted as a standardly-available-but-not-enabled-by-default
> >module in hg) into logical units of change-sets that I then test
> >individually before applying them to my more public-facing
> >branch. This produces clean history that makes it easy for others
> >to see what's going on.
>
> I see it this way that all code is broken to at least a small
> extent, so it is stupid to not to save into source control because
> code is not yet flawless.
I agree that skipping the commits just because it might be broken is
a foolish idea. However, with most VCS tools, your commits can look
something like
Baseline -> A -> B -> C -> D -> E -> F -> G {head/tip}
but A, C, & E all comprise one conceptual change, while B & G are
another, and D & F cancel each other out. You can either cherry-pick
those changes or rebase (with git or the hg plugin) so that the
history looks like
Baseline -> (ACE) -> (BG) {head/tip}
With git, the history isn't actually discarded immediately, but
rather just gets a parallel version (which may or may not have a
reference to it; if it doesn't it will get cleaned up about a month
later according to your garbage-collection settings) so your repo
ends up looking something like
Baseline -> A -> B -> C -> D -> E -> F -> G {orphaned or named}
\---> (ACE) -> (BG) {head/tip}
You can then publish that conceptually clean (and hopefully
tested&working) branch while simultaneously having the full history
in the event you need it. That said, I almost never want the
intermediate work product once I have a final clean version, so I
just let git GC that for me.
-tkc
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Question about Source Control "Frank Millman" <frank@chagford.com> - 2014-03-18 08:42 +0200
Re: Question about Source Control Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-03-19 10:51 +1300
Re: Question about Source Control Terry Reedy <tjreedy@udel.edu> - 2014-03-18 21:38 -0400
Re: Question about Source Control Tim Chase <python.list@tim.thechases.com> - 2014-03-18 21:12 -0500
Re: Question about Source Control albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-03-22 17:32 +0000
Re: Question about Source Control Tim Chase <python.list@tim.thechases.com> - 2014-03-22 13:49 -0500
Re: Question about Source Control Albert-Jan Roskam <fomcl@yahoo.com> - 2014-03-22 13:01 -0700
Re: Question about Source Control Dave Angel <davea@davea.name> - 2014-03-22 22:18 -0400
Re: Question about Source Control Albert-Jan Roskam <fomcl@yahoo.com> - 2014-03-23 07:58 -0700
Re: Question about Source Control Chris Angelico <rosuav@gmail.com> - 2014-03-24 09:56 +1100
Re: Question about Source Control Terry Reedy <tjreedy@udel.edu> - 2014-03-23 21:26 -0400
Re: Question about Source Control Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-24 01:42 +0000
Re: Question about Source Control Chris Angelico <rosuav@gmail.com> - 2014-03-24 13:04 +1100
Re: Question about Source Control Terry Reedy <tjreedy@udel.edu> - 2014-03-24 00:55 -0400
Re: Question about Source Control Chris Angelico <rosuav@gmail.com> - 2014-03-19 13:34 +1100
csiph-web