Subversion and NetBeans – A quick start guide
Introduction:
Subversion is arguably the most popular version control system as of now. No wonder NetBeans has very good support for Subversion. I personally feel that a java developer must be familiar with both these tools. This article shall help you to get started with both these tools.
Objectives:
- To create a simple java project in NetBeans.
- To import the java project into the subversion repository.
- To commit the changes made in a java source file.
- To view the revision history of a java source file which was changed.
- To rollback to the previous revision of the java source file.
Requirements:
- NetBeans 6.1 Beta or NetBeans 6.0
- Subversion
- TortoiseSVN
- Though not mandatory, but a basic knowledge of subversion concepts.
Note: You can read this article to learn how to install/configure Subversion and TortoiseSVN.
Step 1:
Create a new “Java Application” project called “SimpleLogin”.

Step 2:
Create a new JFrame called “LoginFrame” under the package “org.example.simplelogin” and add the necessary components as shown below.

Step 3:
Name the swing components accordingly.

Your application should like this now on preview:

Step 4:
Create a java class named “LoginService” under the package “org.example.simplelogin”.

Step 5:
Add the following code to the LoginService class.

Here we are defining a simple method which shall return true if the username is “guest” and the password is “password”.
Step 6:
Now open “LoginFrame.java” and add the following methods.

The above methods are self explanatory. We are just doing a simple validation and calling the login method we defined previously in the class LoginService.
Step 7:
Now double click the login “button” in the design mode of LoginFrame.java to create the event handling method named “loginButtonActionPerformed”. Add the following code to call the “performLogin” method.

That’s it.
Step 8:
Run the project.
If you enter the username as “guest” and password as “password”, you will get an output like this.

Otherwise, you will be getting an output like this.

Ok, our simple login application is ready for prime time
. Now let us import this project into a subversion repository.
Step 9:
Create an empty folder called “MyRepository” in a preferred location.

Step 10:
Create a subversion repository in the empty “MyRepository” folder as mentioned below, by right clicking anywhere inside the windows explorer.

Accept the default option (FSFS) in the “Create Repository” window.

That’s it. Your repository should be ready when you press “OK” and it should look something like this.

Step 11:
Let us import the NetBeans project we have created into the subversion repository. Right click the NetBeans project we have created and then click “Versioning -> Import into Subversion Repository”.

NetBeans will prompt you with a window. Enter the path of your repository as shown below.

Click the “Next” button and enter the “Repository Folder” name into which you would like to import your project. To make things simple, let us enter our NetBeans project name itself as the “Repository Folder” name. Also enter a small description about this import activity as shown below.

We are almost there. Click the “Next” button and the IDE will show a window like this.

Accept the default entries and click “Finish”. Congratulations! you have imported your project successfully into the subversion repository.
Right click anywhere in your desktop/windows explorer and click “TortoiseSVN -> Repo-Browser” and then enter the path of your subversion repository. You can see all your project files sitting comfortably inside the subversion repository.

Step 12:
Let us play around with some more cool subversion integration features offered by NetBeans. Open the class “LoginService.java” and change the value of “DUMMY_PASSWORD” from “password” to “guest”.

You can see the IDE markup a blue shade near the line you made the change. This indicates that your source file has got something different than the version in the repository. You can also note that the IDE change your java source file name’s font-color to blue.

Let us turn our focus to the editor window again. Click the blue stripe shown by the IDE near the place where you made changes to the source file. The IDE will popup a small hint-window.

You can see the previous value of the DUMMY_PASSWORD there. The IDE also provides you a set of buttons to revert back the changes or to have a “diff” view on the changes made. Let us explore the “diff’ functionality of the IDE first by clicking the “diff” button.

The IDE will display the “diff” view of the “working copy” and the “HEAD” revision (the latest committed version) in the repository.

From the above figure, you can see the current and previous value of the string DUMMY_PASSWORD. Now you can revert back to the old value of “DUMMY_PASSWORD” by clicking the replace button (displayed like an arrow)

When you press the “replace” button, the IDE will replace the “current” value with the “original” value.

The “diff” view provided by the IDE will be very useful to examine and compare the changes made to the “working copy” alongwith the option to revert back to the original version in the repository. But if all you need is to quickly revert back some change to the original version in the repository, you can click on the blue strip in the source code and click the “revert” button.

That’s cool, right?
Step 13:
Enough playing. Now let us commit the changes we made in our source file. Ensure that the source file you are willing to commit is in focus and click the menu “Versioning -> Commit”

When you click the “Commit” menu item, the IDE will prompt you with a window to enter the “message” for this commit operation. Enter a commit message and click the “Commit” button.

Step 14:
Let us explore the history of our source file and see the the changes we made all along. Click the “Versioning -> Search History” menu.

The IDE will display all the versions of the source file.

In the “Search History” window, the IDE offers two views, “summary” view and “diff” view. By default, the IDE displays the “summary” view. The “diff” view contains more information.

You can straightaway “revert” or “rollback” to previous revisions just by right clicking a particular revision.

Nice, isn’t it? There are still a lot more cool subversion features offered by NetBeans. I will blog more about that later. I hope the information provided here was useful to you.
SolitaryGeek Poll
What is your favourite Subversion client?
- TortoiseSVN (47%, 103 Votes)
- The one that comes with my IDE (NetBeans, Eclipse, etc) (30%, 65 Votes)
- Subversion Command Line Client (13%, 29 Votes)
- Other (Please mention your choice in the comments) (5%, 11 Votes)
- RapidSVN (5%, 10 Votes)
Total Voters: 218
Related posts:
I finally decided to write a comment on your blog. I just wanted to say good job. I really enjoy reading your posts.
Tina Russell
Hi,
My name is James Branam and I’m the NetBeans Community Docs Manager. Your blog entry would make a fantastic tutorial for our Community Docs wiki (http://wiki.netbeans.org/wiki/view/CommunityDocs). Would you be willing to contribute it? If you need any help or have any questions, please contact me at james.branam@sun.com. I look forward to hearing from you.
Hi James,
This article is easy to understand and detailed. I liked the article. I am still on blogger, saw your pages look more professional in wordpress
Best wishes for next post.
with regards
Tushar Joshi, Nagpur
Hi Tushar,
Thank you very much for your comments. I too had a blog in blogger but found wordpress more suitable for me.
Hi James,
Excellent blog and I love the graphics, but I need help creating the svn+ssh link on a unix build and not on Windows. I have to have the ssh rather than the apache access and it lives on a machine in the dmz so I can not use file:/// access. It is amazing how much help there is on this subject and how little actual information like yours.
If the subversion repository lives on a machine in the dmz and I get to it through an ssh tunnel, how exactly do you you set up subversion and netbeans to talk? I have tried starting it as a stand alone server and as a command run from a tunnel and even though I can ssh into the machine where the repository lives and I can run svn on the pc in a command window, netbeans 6.1 just tells me that the svn connection was closed unexpectedly.
I think that a blog of this quality on that side of the subject would be quite popular indeed as I can not seem to actually find one – especially using 6.1
Any help you can be is most appreciated.
– Jeff
felicitacion por tu blog
saludos
Hi James,
Just to let you know, I got pride I don’t just leave comments, but this…it really deserves such. You really did an Excellent job. For the first time I study a tutorial and understand every explanation without scratching my head.I really appreciate your effort, and the fact that you killed 1 bird with 1 stone, the swing part makes the graet intro too. I know a lot of people who can get going with swing using your blog. BIG UP!!!
Good luck with the next blog.
lcvster.
Hi all,
Thank you very much for every one of you who read this blog. Special thanks for those who gave valuable comments. Your comments really motivated me hopefully enough to come out with more contributions from me.
I would love to inform you all that this blog entry has been selected as a winner in the “Netbeans blogging contest”.
Thank you once again. I hope you enjoyed this post.
Great blog!
Thank you for the tutorial!
i am satisfied with this tutorial.thank you.
Nice tutorial, thanks!
Fantastic its really use for me Thanks Mr.James Selvakuamr thanks for your contribution we welcome more advanced in future
Thanks for once again
Hey James,
Great work on this. Just wanted to say, I can’t see any of the pictures. Is there something I have to do to see them or did the image directory change for you?
MathMagician
Thanks, your quick guide helped me in creating my repository sucessfully!!
This is Nice ever i see the simplest way to Use SVN Thank For your Quick guide that help me to share SVN To all my Friends.
Thanks for this excellent tutorial! Its saved me hours and hours a research time and I have my project imported into SVN now – all thanks to your tutorial.
PERFECT!!! I REALLY LIKE YOUR POST
I followed the steps provided by you. I struck with the step 11. In netbeans from project folder->Import to subversion -From the first window Subversion repository if i click next, it shows the following error message
org.tigris.subversion.javahl.ClientException: Couldn’t open a repository
Unable to open an ra_local session to URL
Unable to open repository ‘file:///F:/Subversion/MyRepository/Htmlweb’
Unsupported FS format
Expected FS format between ‘1′ and ‘3′; found format ‘4′
What I have to do?
can u please tell me?
PERFECT!!! I have little experience with Java let alone Java Swing but I could very well follow up everything.
Just to add one thing. I had to add this: import javax.swing.JOptionPane;
before: public class LoginFrame extends javax.swing.JFrame {…
in order for it to work.
Thanks once again
I have been using Eclipse with the subclipse plug-in (for subversion) but the way Netbeans integrates subversion is outstanding. I love it.
Excellent post !!