Author Topic: [wishlist] Make CS an external definition in PS SVN  (Read 2342 times)

Lachesis

  • Traveller
  • *
  • Posts: 23
    • View Profile
[wishlist] Make CS an external definition in PS SVN
« on: August 01, 2008, 06:10:17 am »
Apparently each revision of planeshift is firmly tied to a specific revision of crystalspace. I think maintenance could be greatly simplified by using revisioned external definitions. That way developers and testers could automagically pull the correct CS version without having to bother about revision numbers themselves. It also has some other nice benefits, please read http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html for details.

example "patch":
Code: [Select]
Property changes on: trunk
___________________________________________________________________
Name: svn:externals
   + crystalscpace -r30564 https://crystal.svn.sourceforge.net/svnroot/crystal/CS/trunk


this will pull CS rev 30564 into trunk/crystalspace when you co/up trunk. You can use svn:propedit to change this to a different version in your working copy, and when you check in everyone pulling trunk will update to the changed revision as well (unless they also changed svn:externals, in which case they will have to resolve the conflict first, just like with a regular file). When you later use svn merge or svn copy to make/update a stable branch, the svn:externals property will be preserved just like a regular file, so users pulling the stable branch will always pull the correct revision of CS, regardless of what you do in trunk.
« Last Edit: August 01, 2008, 06:42:49 am by Lachesis »

Caarrie

  • Forum Addict
  • *
  • Posts: 3369
  • We want no UNFIXED bugs!!!!!!!!!!!!!
    • View Profile
    • PlaneShift3dMods
Re: [wishlist] Make CS an external definition in PS SVN
« Reply #1 on: August 01, 2008, 06:45:45 am »
I happen to like to checkout CS seperatlly from my ps checkout this would just make things harder for me and others.

Lachesis

  • Traveller
  • *
  • Posts: 23
    • View Profile
Re: [wishlist] Make CS an external definition in PS SVN
« Reply #2 on: August 01, 2008, 07:24:30 am »
No problem at all. You can use svn up --ignore-externals then. Alternatively, one could place the externals in parralel to the PS trunk (so you have trunk, stable, art, ..., and crystal-stable, crystal-trunk), soyou can co either of them separately. This might be especially useful when you have many working copies of PS (you usually dont need a separate wc of cs for each of them).
« Last Edit: August 01, 2008, 07:37:03 am by Lachesis »

Vornne

  • Testers
  • Hydlaa Resident
  • *
  • Posts: 189
    • View Profile
Re: [wishlist] Make CS an external definition in PS SVN
« Reply #3 on: August 01, 2008, 07:45:15 am »
Hmm, it's a fairly good idea, but I wouldn't be interested in it, as I have a bunch of different CS and CEL checkouts that I switch my various PS checkouts between (currently I have 6). Sometimes I want to use newer or older versions than listed in the guide, to test where regressions were introduced, or to see if later versions fix some bug.

But I can handle using --ignore-externals all the time, I'd just make an alias... but just saying my personal POV, this would have to go through someone like Acraig or Xordan.
« Last Edit: August 01, 2008, 07:55:44 am by Vornne »

Lachesis

  • Traveller
  • *
  • Posts: 23
    • View Profile
Re: [wishlist] Make CS an external definition in PS SVN
« Reply #4 on: August 01, 2008, 09:13:15 am »
*nod* yes that makes sens, that's similar changing the revision of the external link in your working copy and not checking that change in. I don't think that core developers can make much use of this, it's rather useful for users that wish to build from source or developers that don't deal much with crystalspace. One example of this I already mentioned on IRC is that you don't need to specify revision numbers in the compile guide, instead you can just say "checkout crystal-stable"
« Last Edit: August 01, 2008, 09:14:58 am by Lachesis »