Difference between revisions of "Dev:Subversion"

From Synfig Studio :: Documentation
Jump to: navigation, search
(use the daily-updated tarball, show how to completely ignore dirs and how to rename dirs safely)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<!--Categories-->
 
<!--Categories-->
[[Category:Building]]
+
{{Category|Building}}
  
[[Build instructions]] has instructions for checking the source code out of subversion in 3 separate projects, but what if you want a single project?
+
'''NOTE''': Synfig now uses git
  
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 and synfigstudio.  'cd' into it and run 'svn up' to update it to the latest version.
+
{{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?
 +
 
 +
The easy way is to download the tarball mentioned on the {{l|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.
 
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.
Line 10: Line 12:
 
Run this 'co' command.  As soon as you see some output, hit control-c to stop it:
 
Run this 'co' command.  As soon as you see some output, hit control-c to stop it:
  
  /tmp$ svn co http://svn.voria.com/code code
+
  /tmp$ svn co https://synfig.svn.sourceforge.net/svnroot/synfig
  A    code/ETL
+
  A    synfig/ETL
  A    code/ETL/releases
+
  A    synfig/ETL/releases
  A    code/ETL/trunk
+
  A    synfig/ETL/trunk
 
   C-c svn: Caught signal
 
   C-c svn: Caught signal
  
Notice that subversion was putting all the ETL files inside code/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:
+
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 http://svn.voria.com/code/ETL/trunk code/ETL/
+
  /tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk synfig/ETL/
  D    code/ETL/releases
+
  D    synfig/ETL/releases
  D    code/ETL/trunk
+
  D    synfig/ETL/trunk
  A    code/ETL/ETL.pbproj
+
  A    synfig/ETL/ETL.pbproj
 
  [...]
 
  [...]
  A    code/ETL/ETL.prj
+
  A    synfig/ETL/ETL.prj
   U  code/ETL
+
   U  synfig/ETL
 
  Updated to revision 440.
 
  Updated to revision 440.
  
Line 30: Line 32:
  
 
  /tmp$ svn update code
 
  /tmp$ svn update code
  A    code/synfig-studio
+
  A    synfig/synfig-studio
  A    code/synfig-studio/trunk
+
  A    synfig/synfig-studio/trunk
  A    code/synfig-studio/trunk/synfigstudio.mime.in
+
  A    synfig/synfig-studio/trunk/synfigstudio.mime.in
 
   C-c svn: Caught signal
 
   C-c svn: Caught signal
  
 
Again, use 'switch' to tell svn we only want the trunk:
 
Again, use 'switch' to tell svn we only want the trunk:
  
  /tmp$ svn switch http://svn.voria.com/code/synfig-studio/trunk code/synfig-studio/
+
  /tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk synfig/synfig-studio/
  D    code/synfig-studio/trunk
+
  D    synfig/synfig-studio/trunk
  A    code/synfig-studio/synfigstudio.mime.in
+
  A    synfig/synfig-studio/synfigstudio.mime.in
 
  [...]
 
  [...]
  A    code/synfig-studio/bootstrap
+
  A    synfig/synfig-studio/bootstrap
   U  code/synfig-studio/
+
   U  synfig/synfig-studio/
 
  Updated to revision 440.
 
  Updated to revision 440.
  
Line 48: Line 50:
  
 
  /tmp$ svn update code
 
  /tmp$ svn update code
  A    code/synfig-core
+
  A    synfig/synfig-core
  A    code/synfig-core/trunk
+
  A    synfig/synfig-core/trunk
  A    code/synfig-core/trunk/synfig-core.xcodeproj
+
  A    synfig/synfig-core/trunk/synfig-core.xcodeproj
 
   C-c svn: Caught signal
 
   C-c svn: Caught signal
  
 
Use switch to select only synfig-core's trunk:
 
Use switch to select only synfig-core's trunk:
  
  /tmp$ svn switch http://svn.voria.com/code/synfig-core/trunk code/synfig-core/
+
  /tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk synfig/synfig-core/
  D    code/synfig-core/trunk
+
  D    synfig/synfig-core/trunk
  A    code/synfig-core/synfig-core.xcodeproj
+
  A    synfig/synfig-core/synfig-core.xcodeproj
 
  [...]
 
  [...]
  A    code/synfig-core/examples/candy.sif
+
  A    synfig/synfig-core/examples/candy.sif
   U  code/synfig-core
+
   U  synfig/synfig-core
 
  Updated to revision 440.
 
  Updated to revision 440.
 
If you want to use different names for the directories (the tarball names for example), after doing the svn switch stuff, edit code/.svn/entries and change the names:
 
 
mv code/synfig-core code/synfig
 
mv code/synfig-studio code/synfigstudio
 
chmod u+w code/.svn/entries
 
nano code/.svn/entries
 
[..change synfig-core to synfig and synfig-studio to synfigstudio...]
 
  
 
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:
 
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
 
  /tmp$ svn update code
  A    code/synfig-docs
+
  A    synfig/synfig-docs
  A    code/synfig-docs/trunk
+
  A    synfig/synfig-docs/trunk
  A    code/synfig-docs/trunk/en
+
  A    synfig/synfig-docs/trunk/en
 
   C-c svn: Caught signal
 
   C-c svn: Caught signal
  
Instead of switching to the trunk, this time we'll switch to 'code/empty', which is an empty directory.  This will result in the whole of the synfig-docs/ being ignored:
+
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 http://svn.voria.com/code/empty code/synfig-docs/
+
/tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-docs/
  D    code/synfig-docs/trunk
+
  D    synfig/synfig-docs/trunk
 
  Updated to revision 440.
 
  Updated to revision 440.
  
Line 88: Line 82:
  
 
  /tmp$ svn update code
 
  /tmp$ svn update code
  A    code/gtkmm-osx
+
  A    synfig/gtkmm-osx
  A    code/gtkmm-osx/trunk
+
  A    synfig/gtkmm-osx/trunk
  A    code/gtkmm-osx/trunk/gtkmm-meta.mpkg
+
  A    synfig/gtkmm-osx/trunk/gtkmm-meta.mpkg
 
   C-c svn: Caught signal
 
   C-c svn: Caught signal
  
  /tmp$ svn switch http://svn.voria.com/code/empty code/gtkmm-osx/
+
  /tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/gtkmm-osx/
  D    code/gtkmm-osx/trunk
+
  D    synfig/gtkmm-osx/trunk
 
  Updated to revision 440.
 
  Updated to revision 440.
  
 
  /tmp$ svn update code
 
  /tmp$ svn update code
  A    code/synfig-osx
+
  A    synfig/synfig-osx
  A    code/synfig-osx/trunk
+
  A    synfig/synfig-osx/trunk
  A    code/synfig-osx/trunk/launcher
+
  A    synfig/synfig-osx/trunk/launcher
 
   C-c svn: Caught signal
 
   C-c svn: Caught signal
  
  /tmp$ svn switch http://svn.voria.com/code/empty code/synfig-osx/
+
  /tmp$ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-osx/
  D    code/synfig-osx/trunk
+
  D    synfig/synfig-osx/trunk
 
  Updated to revision 440.
 
  Updated to revision 440.
  
 
  /tmp$ svn update code
 
  /tmp$ svn update code
  A    code/autobuild
+
  A    synfig/autobuild
  A    code/autobuild/trunk
+
  A    synfig/autobuild/trunk
  A    code/autobuild/trunk/Makefile
+
  A    synfig/autobuild/trunk/Makefile
  A    code/empty
+
  A    synfig/empty
 
  Updated to revision 440.
 
  Updated to revision 440.
 
Since svn switch leaves the directories there, and you may not want that, you can simply delete the directories and files you don't want from code/.svn/entries:
 
 
rm -rf code/autobuild code/empty code/gtkmm-osx code/synfig-osx code/synfig-docs code/.valgrind code/.gitignore
 
chmod u+w code/.svn/entries
 
nano code/.svn/entries
 
[..delete the unneeded files/dirs..]
 
  
 
Finally, we're finished.  'du' shows us that only ETL, core, and studio have a significant amount of content:
 
Finally, we're finished.  'du' shows us that only ETL, core, and studio have a significant amount of content:
  
  /tmp$ du -sk code/*
+
  /tmp$ du -sk synfig/*
  44 code/autobuild
+
  44 synfig/autobuild
  16 code/empty
+
  16 synfig/empty
  3604 code/ETL
+
  3604 synfig/ETL
  16 code/gtkmm-osx
+
  16 synfig/gtkmm-osx
  95628 code/synfig-core
+
  95628 synfig/synfig-core
  16 code/synfig-docs
+
  16 synfig/synfig-docs
  16 code/synfig-osx
+
  16 synfig/synfig-osx
  15420 code/synfig-studio
+
  15420 synfig/synfig-studio
 
  /tmp$
 
  /tmp$
  
 
Summary:
 
Summary:
  
  $ svn co http://svn.voria.com/code
+
  $ svn co https://synfig.svn.sourceforge.net/svnroot/synfig
 
  hit Control-C when output begins
 
  hit Control-C when output begins
  $ svn switch http://svn.voria.com/code/ETL/trunk code/ETL/
+
  $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk synfig/ETL/
 
  $ svn update code
 
  $ svn update code
 
  hit Control-C when output begins
 
  hit Control-C when output begins
  $ svn switch http://svn.voria.com/code/synfig-studio/trunk code/synfig-studio/
+
  $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk synfig/synfig-studio/
 
  $ svn update code
 
  $ svn update code
 
  hit Control-C when output begins
 
  hit Control-C when output begins
  $ svn switch http://svn.voria.com/code/synfig-core/trunk code/synfig-core/
+
  $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk synfig/synfig-core/
 
  $ svn update code
 
  $ svn update code
 
  hit Control-C when output begins
 
  hit Control-C when output begins
  $ svn switch http://svn.voria.com/code/empty code/synfig-docs/
+
  $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-docs/
 
  $ svn update code
 
  $ svn update code
 
  hit Control-C when output begins
 
  hit Control-C when output begins
  $ svn switch http://svn.voria.com/code/empty code/gtkmm-osx/
+
  $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/gtkmm-osx/
 
  $ svn update code
 
  $ svn update code
 
  hit Control-C when output begins
 
  hit Control-C when output begins
  $ svn switch http://svn.voria.com/code/empty code/synfig-osx/
+
  $ svn switch https://synfig.svn.sourceforge.net/svnroot/synfig/empty synfig/synfig-osx/
 
  $ svn update code
 
  $ svn update code

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