views:

84

answers:

2

Hi guys,

My main site is built on top of Invision Power Board. With version 3 just being released, i want to start with a clean codebase and remake all my modifications, but the problem is, when Invision release new versions, keeping track of the modifications I have made so I can reapply them has always been a bastard to do. While this new version will be stored in svn, i am still going to struggle to efficiantly update to new versions.

Thanks in advance.

+2  A: 

I haven't yet tried this, but I imagine a process like this might work:

  1. Download latest version of IPB and put it in a folder called 'ipb-pure'. Create a Git or Mercurial repository here and commit everything.

  2. Clone this repository elsewhere and call it 'ipb-custom'. Make all your customizations here and commit them. Don't push any customizations back to 'ipb-pure'.

  3. New versions of IPB (official releases) can be commited into the 'ipb-pure' repository. Use Git/Mercurial to pull these changes into 'ipb-custom' and merge the heads. If you're lucky, git/hg will merge everything automatically.

too much php
Thats a really good suggestion and I think would work beautifully. Curious about you specifically referring to Git or Mecurial for versioning as opposed to SVN. I personally prefer Git but just wasn't sure if it is better at handling this sort of thing.
Christian
The impression I got from Linus Torvald's talk at google is that Git (and Mercurial) can merge branches automatically, whereas SVN requires heaps of manual effort. I don't use SVN enough to know if this is true or if it applies to the answer I just wrote.
too much php
We use the exact same method, but then using Perforce. Works like a charm.Regards,Sebastiaan
Sebastiaan Megens
I have decided to do it this way. Was going to use SVN as I am more familiar with it, but Git seems to be better at merging. THanks!
Christian
+1  A: 

You can also do this with svn if you want. You might want to read up on 'vendor branches' in the svn book [svnbook.red-bean.com]

jeroenh
Awesome, thats a great read. I am trying to work out whether Git or svn is going to merge my code better.
Christian
I wouldn't worry too much about the merge capabilities, this will work equally well in most cases (though git seems to be somewhat better, especially where renames/moves are involved). At this point I'm using subversion for most projects, simply because of the more mature tooling (TortoiseSVN, VisualSVN, Subclipse, ...). The distributed nature of git is the only valid reason to switch IMHO, but if you don't really need that svn does almost the same job.
jeroenh