Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
subversion [2010/11/30 20:15] – demiankatz | legacy:vufind_1.x_developer_manual:subversion [2015/12/11 20:14] – ↷ Page moved from subversion to legacy:vufind_1.x_developer_manual:subversion demiankatz |
---|
| |
You can use Subversion at several levels: you can [[subversion#exporting_from_subversion|export]] code from the public VuFind repository as an easy way of loading it onto a server, you can [[subversion#initial_checkout|check out]] code from the public repository in order to see its history and (with proper permissions) contribute changes, or you can run your own local Subversion repository to manage your local changes through the [[subversion#vendor_branching|vendor branching]] strategy. | You can use Subversion at several levels: you can [[subversion#exporting_from_subversion|export]] code from the public VuFind repository as an easy way of loading it onto a server, you can [[subversion#initial_checkout|check out]] code from the public repository in order to see its history and (with proper permissions) contribute changes, or you can run your own local Subversion repository to manage your local changes through the [[subversion#vendor_branching|vendor branching]] strategy. |
| |
| After creating a repository on your subversion-server, you'll need to do a checkout of the (still empty) repository into a path of your choice, thus creating a //**working copy**// of your repository. Inside this working copy you can build a subdirectory-structure suitable to your project. |
| |
Subversion is a powerful and useful tool, and it's worth taking the time to learn about it if you expect to be doing complex customization of VuFind. The free [[http://svnbook.red-bean.com/|Version Control with Subversion]] book is a great starting point. | Subversion is a powerful and useful tool, and it's worth taking the time to learn about it if you expect to be doing complex customization of VuFind. The free [[http://svnbook.red-bean.com/|Version Control with Subversion]] book is a great starting point. |
| |
===== Initial Checkout ===== | ===== Initial Checkout ===== |
You check out code from a Subversion repository when you plan on changing it and want to keep track of its history. There are several popular Subversion clients that simplify the checkout process, including [[eclipse setup|Eclipse (with Subclipse)]], [[http://tortoisesvn.net/|Tortoise SVN]] and [[http://www.rapidsvn.org/|Rapid SVN]]. If you don't want to use a fancy graphical tool, there's also the good ol' command line. | You check out code from a Subversion repository when you plan on changing it and want to keep track of its history. There are several popular Subversion clients that simplify the checkout process, including [[https://marketplace.eclipse.org/content/subclipse|Eclipse (with Subclipse)]], [[http://tortoisesvn.net/|Tortoise SVN]] and [[http://www.rapidsvn.org/|Rapid SVN]]. If you don't want to use a fancy graphical tool, there's also the good ol' command line. |
| |
==== Command Line Checkout ==== | ==== Command Line Checkout ==== |
| |
To get started, there two possible approaches: | To get started, there two possible approaches: |
| |
| |
| |
| |
* 5.) Merge “vendor” into “trunk.” Resolve conflicts. Commit. You’re done! | * 5.) Merge “vendor” into “trunk.” Resolve conflicts. Commit. You’re done! |
| |
Sample commands to upgrade VuFind 1.0 to current trunk (assumes that you start out in an appropriate SVN working directory): | Sample commands to upgrade VuFind 1.0 to current trunk (assumes that you start out in an appropriate SVN working directory -- note that this working directory should be from YOUR OWN Subversion repository, not the public VuFind one): |
| |
<code> | <code> |
# need to replace "vendor@1" with a different revision number): | # need to replace "vendor@1" with a different revision number): |
svn merge vendor@1 vendor@HEAD trunk | svn merge vendor@1 vendor@HEAD trunk |
| svn commit -m"Merged latest public trunk" |
</code> | </code> |
| |
| |
Regardless of which approach you take, once you are done, you are all set to begin using the [[subversion#vendor_branching|Subversion vendor branching strategy]] to keep things up to date. If you want to stay on the cutting edge, you should get into the habit of keeping up to date with the trunk -- the more often you merge, the less painful the process should be! Get involved with the [[https://lists.sourceforge.net/mailman/listinfo/vufind-tech|vufind-tech]] mailing list so that you can ask questions about recent changes and be involved in discussions of major changes to the software. | Regardless of which approach you take, once you are done, you are all set to begin using the [[subversion#vendor_branching|Subversion vendor branching strategy]] to keep things up to date. If you want to stay on the cutting edge, you should get into the habit of keeping up to date with the trunk -- the more often you merge, the less painful the process should be! Get involved with the [[https://lists.sourceforge.net/mailman/listinfo/vufind-tech|vufind-tech]] mailing list so that you can ask questions about recent changes and be involved in discussions of major changes to the software. |
| |
| ===== Other Subversion Resources ===== |
| |
| * [[http://tortoisesvn.net/ssh_howto.html|Securing Svnserve using SSH]] - If you want to allow secure access to your local SVN repository, this tutorial will help. |
| * If using Subclipse on Windows, you may also need [[http://www.woodwardweb.com/java/000155.html|this article]]. |
| * [[https://www.zulius.com/how-to/automatically-update-a-subversion-working-copy-on-commit/|Automatically update a Subversion working copy on commit]] - If you want to use SVN to automatically update your code on a server, this will help (though obviously you should only do this if you know what you are doing!). |
| |
| ===== Using Git ===== |
| |
| Some developers prefer [[http://git-scm.com|Git]] over Subversion. If you want to work on VuFind using Git, it is possible. For some ideas, see [[https://swem.wm.edu/um/vufind/git.html|these notes]] from the College of William & Mary. |
---- struct data ---- | ---- struct data ---- |
---- | ---- |
| |