123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- = jMonkeyEngine SDK: Version Control
- :revnumber: 2.0
- :revdate: 2020/07/09
- :keywords: documentation, sdk, editor, tool
- Whether you work in a development team or alone: File versioning is a handy method to keep your code consistent, compare files line-by-line, and even roll back unwanted changes. This documentation shows you how to make the most of the SDK's integrated version control features for Subversion, Mercurial, and Git.
- For every team member, the file versioning workflow is as follows:
- . Once: Download a working copy of the project from the repository ("`checkout`").
- . Regularly: Upload your own changes to the repository ("`commit`").
- . Regularly: Download updates by others from the repository ("`update`").
- include::partial$sdk-features-tip.adoc[]
- == Version Control Systems
- The jMonkeyEngine SDK supports various Version Control Systems such as Subversion, Mercurial, and Git. No matter which of them you use, they all share a common user interface.
- You can use file versioning alone or in a team. The advantages are that you can keep track of changes (who did it, when, and why), you can compare versions line-by-line, you can revert changes to files and lines, merge multiple changes to one file, and you can even undelete files.
- == Creating a Repository (Upload)
- Requirements:
- * You must have a project that you want to version.
- * You must have version control software installed (Subversion, Mercurial, or Git) and have initialized a repository.
- ** Tip: For Subversion, for example, the init command looks like this example: `svnadmin create /home/joe/jMonkeyProjects/MyGame`
- * The computer where the repository is to be hosted must be available in your team's network, or you will only be able to use your repo locally.
- ** Tip: Hosts such as SourceForge, GoogleCode, dev.java.net offer free version control services for open-source projects.
- Now you create a repository to store your project's files.
- . In the jMonkeyEngine SDK, btn:[RMB] click the project in the "`Projects`" window and choose menu:Versioning[Import Into Subversion Repository] (or initialize Mercurial Project, etc, respectively).
- ** Tip: If you haven't evaluated yet which system to choose, start with Subversion for now.
- . Go through the wizard and fill in the fields to set up the repository.
- == Checking Out a Repository (Download)
- You and your team mates check out (download) the repository to their individual workstations.
- . Go to the "`Team`" menu and choose menu:Subversion[Checkout] (or Git or Mercurial respectively)
- . Fill in your repo data into the wizard and click Finish.
- //** A typical repository +++<abbr title="Uniform Resource Locator">URL</abbr>+++ looks like this example: `link:http://jmonkeyengine.googlecode.com/svn/trunk/engine[http://jmonkeyengine.googlecode.com/svn/trunk/engine]`
- ** If you want to be able to submit changes, you must have a username and password to this repository. Otherwise leave these fields blank.
- . The repository is downloaded and stored in the location you chose.
- . Use the menu:File[Open Project] menu to open the checkout as project and start working.
- ** If the checkout is not recognized you need to choose menu:File[New Project from Existing Sources]
- Of course you can also check out existing repositories and access code from other open-source projects (e.g. SourceForge, GoogleCode, dev.java.net).
- == Updating and Committing Changes (Send and Receive)
- Receiving the latest changes from the team's repository is referred to as `updating`. Sending your changes to the team's repository is referred to as `committing`.
- . Before making changes, btn:[RMB] click the project and select menu:Subversion[Update] to make sure you have the latest revision.
- ** Get in the habit of updating regularly, always before you edit a version controlled file. It will spare you much grief.
- . After making changes to the project, make certain your change did not break anything.
- .. Update, build, run, test.
- .. Look at the red/green/blue marks in the editor to review what you have deleted/added/changed. Click the marks to review all differences in a file.
- .. Choose menu:Subversion[Show Changes] to see all files that were recently changed – by you and other team members.
- .. _Update again_ in case your team mates made changes while you were reviewing.
- . If there are no conflicts and you want to commit your changes, choose menu:Subversion[Commit] from the menu.
- . Write a commit message describing what you changed.
- ** Remember, you are writing a message to your future self. Never write redundant stuff like "`I changed something`".
- == Comparing and Reverting Changes
- * If you and another committer edited the same line, there is a conflict, and the jMonkeyEngine SDK will show an error message.
- ** btn:[RMB] click a file Choose menu:Subversion[Resolve Conflict]
- ... Compare the conflicting versions. Press the buttons to accept or reject each change individually.
- ... After the resolver shows green, save the resolution.
- ... Build and test the resolution, update, and commit.
- * btn:[RMB] click a file and choose menu:Subversion[Search History].
- ** You can inspect a file's history and see who changed what, why, and when.
- ** You can roll back a file to a historic version if necessary.
- * In general, you can choose menu:Subversion[Diff] for any file to see two versions of a file next to each other.
- == No Version Control? Local History!
- If you do not use any version control, you can still track changes in projects to a certain degree.
- * btn:[RMB] click a file or directory and choose Local History to show or revert changes, or undelete files.
- * You can also select any two files in the Project window and choose menu:Tools[Diff] to compare them.
- * Local History only works for files edited in jMonkeyEngine SDK Projects (It does not work for other files, e.g. in the Favorites window.)
- See also:
- * link:http://netbeans.org/kb/docs/ide/subversion.html[Source Code Management with Subversion]
|