Using Subversion Support in NetBeans IDENetBeans IDE provides tight integration with Subversion client versions 1.6.x and higher. The IDE's Subversion support is designed to help streamline the development process for groups working from a shared repository, enabling you to perform versioning tasks directly from your project system within the IDE. This document demonstrates how to perform basic versioning tasks in the IDE by guiding you through the standard workflow when using versioning software. Please note that NetBeans Subversion support does not work when used with Cygwin. Subversion is a popular open source version control system that is becoming the next-generation replacement for CVS. It provides various improved features, for example:
Contents
To complete this tutorial, you need the following software and resources.
Note for Windows users: You can install a bundled Subversion client as a NetBeans IDE plugin. Go to Tools > Plugins, open the Available Plugins tab, and install the Bundled Subversion Client for Windows. Setting up SubversionBefore you can take advantage of the IDE's Subversion support, you need to have Subversion client software installed on your computer. The IDE's Subversion support works by interacting with the Subversion client to carry out versioning commands. Depending on your system, and whether you install the Subversion client to a non-default location, you may also need to register the path to the Subversion executable in the IDE. Finally, you need to make sure that you have a Subversion repository to connect to.
Getting the SoftwareMake sure you have the following software installed on your computer: Specifying the Path to the Subversion ExecutableNetBeans IDE automatically tries to identify the location of the Subversion
executable file by using the By default, the Subversion executable file is installed in the On *nix-based machines, you can verify the location of the Subversion
executable by typing To set the path to the Subversion executable file in the IDE:
Ensuring you have a Repository to Connect toBefore invoking Subversion actions from the IDE, make sure you have access to a Subversion repository. The IDE does not provide support for creating Subversion repositories as this is not a frequently used action (In a production environment a repository is only created once, after the design of the repository layout has been determined.) and moreover it requires administrative commands. If you would like to experiment with the IDE's support using a local repository, you can create one using the svnadmin tool, which is included in the Subversion client software. To create a Subversion repository on your computer, use svnadmin create /path/to/your/repository For more information, see: http://svnbook.red-bean.com/en/1.1/ch05s02.html. Synchronizing Local Files with a RepositoryWhen using a version control system, you work by synchronizing local files with a repository, making changes to your local copy, then committing them to the repository. The following list describes various ways you can synchronize a project in NetBeans IDE, depending on your specific situation:
Opening a Subversion Project in the IDEIf you already have a Subversion versioned project which you have been working
with outside of the IDE, you can open it in the IDE and versioning features
will automatically become available to you. The IDE scans your open projects
and if they contain Checking out Files from a RepositoryIf you want to connect to a remote repository from the IDE, then check out files and immediately begin working with them, do the following:
Importing Files into a RepositoryAlternately, you can import a project you have been working on in the IDE to a remote repository, then continue to work on it in the IDE after it has become synchronized. Note: While you are actually exporting files from your system, the term 'import' is used in version control systems to signify that files are being imported into a repository. To import a project to a repository:
Editing SourcesOnce you have a Subversion versioned project opened in the IDE, you can begin making changes to sources. As with any project opened in NetBeans IDE, you can open files in the Source Editor by double-clicking on their nodes, as they appear in the IDE's windows (for example, Projects (Ctrl-1 on Windows/Cmd-1 on OS X), Files (Ctrl-2 on Windows/Cmd-2 on OS X), Favorites (Ctrl-3 on Windows/Cmd-3 on OS X)). When working with sources in the IDE, there are various UI components at your disposal, which aid in both viewing and operating version control commands:
Viewing Changes in the Source EditorWhen you open a versioned file in the IDE's Source Editor, you can view real-time changes occurring to your file as you modify it against your previously checked-out base version from the repository. As you work, the IDE uses color encoding in the Source Editor's margins to convey the following information:
The Source Editor's left margin shows changes occurring on a line-by-line basis. When you modify a given line, changes are immediately shown in the left margin. You can click on a color grouping in the margin to call versioning commands. For example, the screen capture below left shows widgets available to you when clicking a red icon, indicating that lines have been removed from your local copy. The Source Editor's right margin provides you with an overview that displays changes made to your file as a whole, from top to bottom. Color encoding is generated immediately when you make changes to your file. Note that you can click on a specific point within the margin to bring your inline cursor immediately to that location in the file. To view the number of lines affected, hover your mouse over the colored icons in the right margin:
Viewing File Status InformationWhen you are working in the Projects (Ctrl-1 on Windows/Cmd-1 on OS X), Files (Ctrl-2 on Windows/Cmd-2 on OS X), Favorites
(Ctrl-3 on Windows/Cmd-3 on OS X), or Versioning windows, the IDE provides several visual features
that aid in viewing status information about your files. In the example
below, notice how the badge (e.g.
Badges, color coding, file status labels, and perhaps most importantly, the Versioning window all contribute to your ability to effectively view and manage and versioning information in the IDE. Badges and Color CodingBadges are applied to project, folder, and package nodes and inform you of the status of files contained within that node: The following table displays the color scheme used for badges:
Color coding is applied to file names in order to indicate their current status against the repository:
File Status LabelsFile status labels provide a textual indication of the status of versioned files in the IDE's windows. By default, the IDE displays status (new, modified, ignored, etc.) and folder information in gray text to the right of files, as they are listed in windows. You can, however, modify this format to suit your own needs. For example, if you want to add revision numbers to status labels, do the following:
File status labels can be toggled on and off by choosing View > Show Versioning Labels from the main menu. The Versioning WindowThe Subversion Versioning window provides you with a real-time list of all of the changes made to files within a selected folder of your local working copy. It opens by default in the bottom panel of the IDE, listing added, deleted or modified files. To open the Versioning window, select a versioned file or folder (e.g. from the Projects, Files, or Favorites window) and either choose Subversion > Show Changes from the right-click menu, or choose Team > Show Changes from the main menu. The following window appears in the bottom of the IDE: By default, the Versioning window displays a list of all modified files within the selected package or folder. Using the buttons in the toolbar, you can choose to display all changes or limit the list of displayed files to either locally or remotely modified files. You can also click the column headings above the listed files to sort the files by name, status or location. Notes:
The Versioning window toolbar also includes buttons that enable you to invoke the most common Subversion tasks on all files displayed in the list. The following table lists the Subversion commands available in the toolbar of the Versioning window:
You can access other Subversion commands in the Versioning window by selecting a table row that corresponds to a modified file, and choosing a command from the right-click menu:
For example, you can perform the following actions on a file:
Comparing File RevisionsComparing file revisions is a common task when working with versioned
projects. The IDE enables you to compare revisions by using the Diff
command, which is available from the right-click menu of a selected
item (Subversion > Diff), as well as from the Versioning window.
In the Versioning window, you can perform diffs by either double-clicking
a listed file, otherwise you can click the Diff All icon ( When you perform a diff, a graphical Diff Viewer opens for the selected file(s) and revisions in the IDE's main window. The Diff Viewer displays two copies in side-by-side panels. The more current copy appears on the right side, so if you are comparing a repository revision against your working copy, the working copy displays in the right panel: The Diff Viewer makes use of the same color encoding used elsewhere to display version control changes. In the screen capture displayed above, the green block indicates content that has been added to the more current revision. The red block indicates that content from the earlier revision has been removed from the later. Blue indicates that changes have occurred within the highlighted line(s). Also, when performing a diff on a group of files, such as on a project,
package, or folder, or when clicking Diff All
( The Diff Viewer also provides you with the following functionality: Make Changes to your Local Working CopyIf you are performing a diff on your local working copy, the IDE enables you to make changes directly from within the Diff Viewer. To do so, you can either place your cursor within the right pane of the Diff Viewer and modify your file accordingly, otherwise make use of the inline icons that display adjacent to each highlighted change:
Navigate among Differences between Compared FilesIf your diff contains multiple differences, you can navigate among them by using the arrow icons displayed in the toolbar. The arrow icons enable you to view differences as they appear from top to bottom:
Change Viewing CriteriaYou can choose whether to view files containing changes from the local working copy, the repository, as well as both simultaneously:
Note: The color scheme described in the Badges and Color Coding section is disregarded with respect to the above mentioned icons. Merging File RevisionsNetBeans IDE enables you to merge changes between repository revisions and your local working copy. You can specify a range of revisions to merge. You can even merge a range of revisions from two separate repository folders. The following scenario describes a common use-case: You have checked out the
trunk version on a folder named
Note: After merging revisions to your local working copy, you must still commit changes using the Commit command in order for them to be added to the repository. Committing Sources to a RepositoryAfter making changes to sources, you commit them to the repository. It is generally a good idea to update any copies you have against the repository prior to performing a commit in order to ensure that conflicts do not arise. Conflicts can occur however, and should be thought of as a natural event when numerous developers are working on a project simultaneously. The IDE provides flexible support that enables you to perform all of these functions. It also provides a Conflict Resolver which allows you to safely deal with any conflicts as they occur. Updating Local CopiesYou can perform updates by choosing Subversion > Update from the right-click menu of any versioned item in the Projects, Files, or Favorites windows. When working directly from the Versioning window, you need only right-click a listed file and choose Update. To perform an update on all source files, you can click
the Update All icon ( Resolving ConflictsWhen you perform an update or a commit, the IDE's Subversion support compares your files with repository sources to make sure that other changes have not already occurred in the same locations. When your previous checkout (or update) no longer matches the repository HEAD (i.e. most current revision), and the changes that you applied to your local working copy coincide with areas in the HEAD that have also changed, your update or commit results in a conflict. As indicated in Badges and Color Coding, conflicts
are displayed in the IDE with red text and are accompanied by a red badge
(
Any conflicts that arise must be resolved before you commit files to the repository. You can resolve conflicts in the IDE using the Merge Conflicts Resolver. The Merge Conflicts Resolver provides an intuitive interface that enables you to address individual conflicts sequentially while viewing merged output as you make changes. You can access the Merge Conflicts Resolver on a file that is in conflict by right-clicking that file and choosing Subversion > Resolve Conflicts. The Merge Conflicts Resolver displays the two conflicting revisions side-by-side in the top pane, with the conflicting areas highlighted. The lower pane depicts the file as it appears while merges for individual conflicts between the two revisions occur: You resolve a conflict by accepting one of the two revisions displayed in the top pane. Click the Accept button of the revision you want to accept. The IDE merges the accepted revision with the source file, and you can immediately see the results of the merge in the bottom pane of the Merge Conflicts Resolver. Once all conflicts are resolved, click OK to exit the Merge Conflicts Resolver and save the modified file. The conflict badge is removed and you can now commit the modified file to the repository. Performing the CommitAfter editing source files, performing an update and resolving any conflicts, you commit files from your local working copy to the repository. The IDE enables you to call the commit command in the following ways:
The Commit dialog opens, displaying files that are about to be committed to the repository: The Commit dialog lists:
From the Commit dialog, it is possible to specify whether to exclude individual files from the commit. To do so, click the Commit Action column of a selected file and choose Exclude from Commit from the drop-down list. Similarly, when new files are included, you can specify the MIME type by choosing Add as Binary or Add as Text from the drop-down list. To perform the commit:
SummaryThis concludes the guided tour of Subversion for NetBeans IDE 6.x and higher. This document demonstrated how to perform basic versioning tasks in the IDE by guiding you through the standard workflow when using the IDE's Subversion support. It has shown how to set up a versioned project and perform basic tasks on versioned files while introducing you to some of the new Subversion features included in the IDE. See AlsoFor related documents, see the following resources:
|
Documentation |