Difference between revisions of "Dev:Subversion"
m (Text replace - '{{l|Category:' to '{{Category|') |
Secondplanet (Talk | contribs) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
<!--Categories--> | <!--Categories--> | ||
{{Category|Building}} | {{Category|Building}} | ||
+ | |||
+ | '''NOTE''': Synfig now uses git | ||
{{l|Build instructions}} has instructions for checking the source code out of subversion in 3 separate projects, but what if you want a single project? | {{l|Build instructions}} has instructions for checking the source code out of subversion in 3 separate projects, but what if you want a single project? |
Latest revision as of 15:40, 20 February 2011
NOTE: Synfig now uses git
Build instructions has instructions for checking the source code out of subversion in 3 separate projects, but what if you want a single project?
The easy way is to download the tarball mentioned on the Source code page. Extract it, and it creates a subversion working directory called 'synfig' which contains ETL, synfig-core and synfig-studio. 'cd' into it and run 'svn up' to update it to the latest version.
Here's how I achieved it. The following steps will create a new directory called 'code' in the current directory, and put everything inside there. It's quite long, because I reproduce a bit of the output. If you just want to see the commands, just to the 'Summary' at the bottom of this page.
Run this 'co' command. As soon as you see some output, hit control-c to stop it:
/tmp$ svn co https://synfig.svn.sourceforge.net/svnroot/synfig A synfig/ETL A synfig/ETL/releases A synfig/ETL/trunk C-c svn: Caught signal
Notice that subversion was putting all the ETL files inside synfig/ETL/trunk. We don't want the 'trunk' directory, or any other tags or branches, so we use 'switch' to tell it that. Let the command complete:
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk synfig/ETL/ D synfig/ETL/releases D synfig/ETL/trunk A synfig/ETL/ETL.pbproj [...] A synfig/ETL/ETL.prj U synfig/ETL Updated to revision 440.
Then issue the 'update' command, and again interrupt it when it starts pulling in files:
/tmp$ svn update code A synfig/synfig-studio A synfig/synfig-studio/trunk A synfig/synfig-studio/trunk/synfigstudio.mime.in C-c svn: Caught signal
Again, use 'switch' to tell svn we only want the trunk:
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk synfig/synfig-studio/ D synfig/synfig-studio/trunk A synfig/synfig-studio/synfigstudio.mime.in [...] A synfig/synfig-studio/bootstrap U synfig/synfig-studio/ Updated to revision 440.
And repeat again for synfig-core:
/tmp$ svn update code A synfig/synfig-core A synfig/synfig-core/trunk A synfig/synfig-core/trunk/synfig-core.xcodeproj C-c svn: Caught signal
Use switch to select only synfig-core's trunk:
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk synfig/synfig-core/ D synfig/synfig-core/trunk A synfig/synfig-core/synfig-core.xcodeproj [...] A synfig/synfig-core/examples/candy.sif U synfig/synfig-core Updated to revision 440.
Supposing there are some subdirectories which you don't want at all. For example, the next up is synfig-docs. Use control-c again to interrupt the update as soon as it gets started:
/tmp$ svn update code A synfig/synfig-docs A synfig/synfig-docs/trunk A synfig/synfig-docs/trunk/en C-c svn: Caught signal
Instead of switching to the trunk, this time we'll switch to 'synfig/empty', which is an empty directory. This will result in the whole of the synfig-docs/ being ignored:
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-docs/
D synfig/synfig-docs/trunk Updated to revision 440.
Proceed in the same manner for the remaining directories. I didn't want either of the OSX trees, so I switched those to 'empty' too:
/tmp$ svn update code A synfig/gtkmm-osx A synfig/gtkmm-osx/trunk A synfig/gtkmm-osx/trunk/gtkmm-meta.mpkg C-c svn: Caught signal
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/gtkmm-osx/ D synfig/gtkmm-osx/trunk Updated to revision 440.
/tmp$ svn update code A synfig/synfig-osx A synfig/synfig-osx/trunk A synfig/synfig-osx/trunk/launcher C-c svn: Caught signal
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-osx/ D synfig/synfig-osx/trunk Updated to revision 440.
/tmp$ svn update code A synfig/autobuild A synfig/autobuild/trunk A synfig/autobuild/trunk/Makefile A synfig/empty Updated to revision 440.
Finally, we're finished. 'du' shows us that only ETL, core, and studio have a significant amount of content:
/tmp$ du -sk synfig/* 44 synfig/autobuild 16 synfig/empty 3604 synfig/ETL 16 synfig/gtkmm-osx 95628 synfig/synfig-core 16 synfig/synfig-docs 16 synfig/synfig-osx 15420 synfig/synfig-studio /tmp$
Summary:
$ svn co https://synfig.svn.sourceforge.net/svnroot/synfig hit Control-C when output begins $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk synfig/ETL/ $ svn update code hit Control-C when output begins $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk synfig/synfig-studio/ $ svn update code hit Control-C when output begins $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk synfig/synfig-core/ $ svn update code hit Control-C when output begins $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-docs/ $ svn update code hit Control-C when output begins $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/gtkmm-osx/ $ svn update code hit Control-C when output begins $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-osx/ $ svn update code