[wp-hackers] Switching from SVN
eric at eam.me
Fri Dec 10 04:55:43 UTC 2010
> I work on it until it's working, then I check it in.
Yes, this works for smaller projects. Quick patches, adding filters, etc.
But if you're working on a larger project and will need to step away at any
point in time, it might be too large to keep your entire thought process in
hand at once. For example, the reason why I pitched an idea for ticket
15066 but haven't written a patch yet is the size of the project. Yes, a
new class will be a separate file, but as I build it I'll want to keep track
of the changes I make.
For some of us, it's easy to work on large projects by breaking them into
smaller, "micro" projects. When each micro project is complete, I commit to
my local repository (Git, Hg, whatever I happen to be using). The entire
project isn't done yet, so I don't want to share it with anyone else, but
the micro project I've been working on *is* done and I want to mark that
milestone in case I need to come back to it later.
So for small patches (the majority of *current* WordPress work), it wouldn't
make sense to move to a different version control system. SVN works just
fine for that. But when working on larger projects, it makes sense to use a
local repository to break up the work and push the entire changeset when the
project is complete.
Once again, though, core committers already kind of do this with trunk. But
for those of us without commit rights, we can't publish partially-completed
patches to trunk. We can't revert those partial changes when we realize
we've made a mistake. All we can do is write code, create a patch file, and
manually upload it to Trac. From that perspective, SVN is a major PITA.
On Thu, Dec 9, 2010 at 8:37 PM, Otto <otto at ottodestruct.com> wrote:
> On Thu, Dec 9, 2010 at 9:49 PM, Brian Layman <bulk at thecodecave.com> wrote:
> > The fact that an open source solution existed at all 6
> > years ago was great.
> 10 years. SVN was created in 2000.
> Also, you're talking to somebody who has used a lot of revision
> control systems. I used Visual SourceSafe in 2000 when working on
> Windows stuff, CVS in college, SVN since then, RCS as recently as 4
> years ago (seriously), BitKeeper (shoot me), something new that I
> can't remember the name of last year (it was bad enough that I blocked
> it out), and I even once worked on a system that still had SCCS on it.
> My mental block is pretty much exclusive to *distributed* revision
> control systems. Git, Bazaar, Mercurial. See, without the concept of a
> central point for the code, the whole thing doesn't make any sense to
> me. You check stuff out, you check stuff in, you merge... that's the
> whole point of revision control.
> See, having a local repository doesn't make any sense. I've never
> needed to roll-back my own changes locally. I just undo the changes
> myself. Or fix the problem. Why would you ever check in non-working
> code? You test the thing *before* you check it in (when possible). I
> don't check in code as I work on it. I work on it until it's working,
> then I check it in.
> A lot of WordPress treats the checked in code as "production" code.
> It's finished. Ready to run. All of WordPress core is pretty much
> runnable code, except for the occasional mistakes. WordPress.org
> itself runs on trunk, whenever anybody gets around to deploying new
> code to it. The core WordPress.com code is updated tens of times a
> day. I myself run the WordPress trunk on my own sites, updated daily.
> To me, that's the whole point: the checked in code is finished code,
> for the most part. I don't check in unfinished code.
> So I don't really get why you'd want a local repo. I don't get why
> you'd want to merge your local repo with a "central" repo. I don't get
> why you'd want to have to do all this frickin' merging from the
> central back to your local all the bloody time. And branching is a
> pain in the ass regardless of what type of system you use, so why
> would you want to do it more? That sort of thing. I need something
> that explains why this stuff is better your way. Because to me, it
> sounds far more difficult. In order to make a change, I have to
> download an entire frickin' repo and then create a branch? F- that,
> bro. That's really enough to keep me from even trying. That's why I
> avoid github, because it makes everything complicated. Give me the
> code, let me change it, let me send you the patch. That's easy. That
> way I'm dealing one-on-one with some person. Trying to figure out your
> wacky-ass system is a pain in the ass.
> Just saying. :)
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
More information about the wp-hackers