I am a Android Developer and I want to establish the Subverson
Now I have configure my eclipse with the plugin Subclipse properly and SVN is also properly configured by checking in perspective .Now I am not getting any idea how to use it ,how to create svn server, the local repository to svn and how can I share a project in LAN so my team can work on same project.I have surf lot on net but I am not getting any proper way ....
Subversion requires that there be a central repository/server on which to store all your data. So, you should decide whether you want to host this in-house, or whether you wish to outsource the repository hosting:
In-house Repository
An SVN server does not require a lot of resources, thus does not require the fastest hardware available, just make sure you have a reasonable amount of disk space available - depending on the types of items you are storing (multimedia files, Jars, images, etc).
Without going into the details on installing and configuring the server, just head to Apache to download a suitable binary, and follow their installation instructions. While you can get away with creating just a single user in the server, I would recommend creating one for each team member as this makes it easier to see who last checked-in a file.
Outsourced Repository
There are several organisations that are able to host your project(s), and the choices are determined by whether your project is open or closed source.
Open source projects have several FREE options, such as Google Code or the old favourite SourceForge.
For Commercial closed-source projects, if you have the budget you could opt for a paid service, such as JIRA Studio from Atlassian, who offer SVN hosting, plus their suite of tools - however this is not free. There are probably many other such commercial offerings, however I've not used them personally, so cannot comment on them.
Using Subversion
With most of the setup information out of the way, you'll need to know how to use subversion itself.
Basically, once you have linked your project to SVN, your day-to-day use of SVN will probably consist of the following steps:
Edit Source code
Update from HEAD (to incorporate other changes)
Resolve any conflicts that occurred from other users updating the same line of source code as yourself
Commit your changes to the repository
Repeat
When it comes to releasing your software product, it is common to use the Tagging functionality of SVN, which tags the current revision of each item in your repo with a given name (such as "MyProduct-1.0.0"), allowing you to continue development on the HEAD branch, but still recreate this version at any point in the future.
You will probably find this ebook to be of particular help when it comes to using SVN.
HTH
Subversion uses a client-server model unlike tools like Git that consist of clients. It appears that you are trying to use subversion without a server. I would recommend installing subversion and then following a tutorial such as this one to set up a repository for your team to use.
Related
Alright, me and a few others are looking to work on a project together, and we have our own VPS to host the server as it runs, but the problem is that we need to be able to access the source at the same time to edit things; now I'm wondering if there's some sort of way to set it up via FTP or something, and if so, what if we were to unknowingly access and save the same file, it would cause loss of data.
How can a few people and I access a source project hosted on a server at once without loss of data? To clarify, we're using Netbeans as our IDE, and it is a Java project, JDK 8, contains anything from text files, to image files, to java source files, so it can't restrict file types.
The universal way to work on a codebase as a group is through a version control system. Version control systems allow for the merging of code to prevent data loss and give you full line-by-line history of your project. Git is probably the defacto at this point in time, and loads of sites will let you host Git repositories for free.
GitHub is one of the most widely used Git repository hosts. They offer free hosting for open-source ("public") repositories.
BitBucket is another monster, and they offer free hosting for both open and closed source repositories.
You can find many others with a simple web search. GitLab supposedly allows you to setup a simple local repository which may be what you're looking for.
You can refer to the Using Git Support in NetBeans article to get started.
I have following problem:
3 people are working on the same Java project and want to share a workspace so we can all work together. Our computers are connected to a local network, but we want to share the workspace created in one computer.
Git is currently the standard tool to use in this case. There are others but I would recommend using it over anything else. It is also free.
http://git-scm.com/
After downloading and installing on each of your machines create a public repository to store the project.
Here is the getting started page:
http://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
Multiple Eclipse instances would NOT run well on the same "physical" files. Eclipse does not even reload directories when there are modifications. This means, you get trouble if you sync the filesystems.
The best way to work together and share the code is to use some kind of revision control system, i.e:
git
SVN
Mercurial
I would look into setting up some kind of version control, like Git, and some hosting service.
We're considering TFS for our .NET based projects and as a task management platform.
Some teams develop exclusively in Java and they're quite happy with SVN (Subclipse).
Our managers came up with the following questions:
Should we migrate the Java teams to TFS as well?
Does TFS (source control only) handles well Java projects?
Is it a pain to migrate our Java code base and history from Subclipse to TFS?
Currently we are looking to use TFS as a sole source control platform for maintainability reasons. We would like to avoid having our IT guys supporting multiple systems.
Thanks
Full disclosure, I work on the team that write the Java tooling for TFS so take this answer as appropriately biased :-)
As far as TFS is concerned - all code is created equal. It's just bytes in files that it checks in to version control. Like all SCM systems it doesn't care what language the files are written in.
Microsoft provide a full, rich TFS Plug-in for Eclipse (called Team Explorer Everywhere). This provides full source control, work item tracking, build, sharepoint, reports access etc into TFS from Eclipse based IDE's. It's written in 100% Java and talks directly to the web services exposed by TFS.
In addition we also provide a cross-platform command line client for TFS so that you can talk to TFS from the command line on your operating system of choice (Mac, Linux, Solaris, HP-UX, Aix etc all fully supported).
Finally, if you have tools written in Java that want to talk to TFS then they can make use of the TFS SDK for Java which is the full API that we used to create the Eclipse integration and cross-platform command line client but packaged up with samples and snippets and ready for you to redistribute with your applications.
When it comes to build you have a couple of choices. If you want to stick with your current build server then it is likely that this already supports talking to TFS (all the popular open source build servers do). In addition to that, Microsoft provide the TFS Build Extensions which allow you to run Ant or Maven based builds on the Team Foundation Build server. The build results (along with any warnings or errors) are published back into TFS along with any JUnit test data if you execute JUnit tests as part of your build. Also you get to create and manage the build definitions in the Eclipse IDE and have one place to manage access to them etc.
So - the level of support for Java is very high and Microsoft has shown consistent investment in this area. We recently shipped some TFS 2010 Power Tools for Eclipse and we've also been shipping preview releases of Team Explorer Everywhere 11 alongside Team Foundation Server 11 (we're the same team inside the company).
To import history from SVN, that's the same as importing history from any SCM tool into TFS (or TFS into any SCM tool). You have a couple of options. You can take a snapshot and cut over at a particular point (such as a release) or you can migrate history. To Migrate history from SVN there are some partner solutions available including one from Timely Migration that I've seen a lot of customers have success with.
Hope that helps.
After a year of working on a Java/JVM project using TFS, I would like to dissuade anyone from doing this. While TFS may be considered top-of-the-line for .NET developers, you won't find any Java Developers with any experience with it. There is the plug-in for Eclipse and a port to IntelliJ, but I've had terrible luck with both, though I'm guessing it's mainly because TFS does not work like any other VCS I've used.
On our team, we've estimated a 10-15% overhead due to TFS and complications caused by it. Days of work lost because TFS decided to overwrite files, days of troubleshooting issues caused by incomplete TFS Updates. We have done a branch in 6 months because the entire team lost two days the last time we did. It's common to hear the phrase "I just updated with your latest changes, can you come check to make sure nothing disappeared in the merge?". Instead of using Jira, we're stuck using the terrible issue-tracking in TFS, causing more yet more issues.
Several of the developers on the team have taken to either using git, either standalone or the git-tfs bridge. Others just copy the source tree prior to any 'risky' activities, like updating or checking in.
Either way, I wouldn't recommend it for a team that does not have experience with it...
I like the answer of #Martin_Woodward a lot, but it is too much biased in my opinion, so I add my 2 cents here. We in our company are in a similar situation, and the decision (in my opinion) depends on the context. I can see 3 different situations, and the decisions may be different in each one:
You are mostly developing .NET solutions, and the Java parts are integrated in the .NET solutions.
Your .NET solutions are independent developed from the Java solutions, and they are half .NET, half Java.
Most of your solutions are developed with Java, and only a small percentage is developed with .NET
I would agree with Martin only in the first case. You will gain profit from the common development environment, source code control, build process ... Your Java guys will learn the differences to TFS Source Control (does it have a name??). And your future will look bright ;-)
If your .NET solutions and Java solutions are independent from each other, the only argument to use TFS for developing Java solutions is cost in operation. And you should carefully look at it, if the savings for operating the development environment only TFS will out weight the additional cost of switching your Subversion projects to TFS.
In the last case, it would be an awful decision to switch with a lot of people just to have a common environment to develop. You may integrate Subversion into VisualStudio (using e.g. VisualSVN or other plugins), and you have nearly no invest at all.
The migration of source code including history is normally a pain, and it depends on the source and target if that works well. We have good experiences with CSV and SVN, but no (good) experience with others. But that is normally not a problem, you may use your old SVN repositories (read-only) and just migrate the last milestone. After some time, SVN repos may be let alone ...
After 1 year working with TFS/Java I completely agree with Dusty J (Yes, TFS/Java is bad) and completely disagree with Martin Woodward about great Microsoft support. Although for my duty as a developer the Eclipse TFS is OK, the problems are for my build/release duties.
First, this Eclipse plugin does not allow creating a branch for several projects at once as in CVS/SVN. One needs to create a branch separately for every project. Then we cannot keep the same project names in the branch – one needs changing a project name and after checking out from the branch to rename to the original name. See also my post How to associate an Eclipse Workspace with TFS workspace?, there is no way to associate an Eclipse workspace with TFS workspace. Thus, the mapping for a local folder cannot be saved; it needs to be done again after opening another Eclipse workspace for branch building. And since the local mapping is the same there is a possibility of erasing a local folder with unsaved work as Dusty J wrote.
This removing local files without warning is a terrible feature of TFS (see the post Why command get from a command line in TFS removes parallel projects?). What Microsoft thinks about the possibility of erasing local files just under regular option "Remove Local Mapping" in Eclipse?
So, despite my effort to learn TFS I still spend 10 times more time for various builds as compared to CVS I used before.
(Another biased MS employee)
TFS formed a team about 18 months ago to focus solely on making the Java experience great in TFS/Team Services and across all platforms. I am on that team and I think we have made a ton of great progress. I won't disagree that the end to end story was pretty bad when this question was asked, but I think the answer has changed quite a bit in the last year.
My team provides build and deployment tasks for TFS as well the plugins for Eclipse and IntelliJ to make the end to end experience as complete as possible. We are also working hard to make sure we document how to get the best out of TFS if you are a Java developer.
If you want more details, checkout http://java.visualstudio.com.
Thanks,
Jason Prickett
Why not use SVN for the .NET projects? Is there any reason for that? There are multiple plugins for SVN in Visual Studio as well as a windows shell extension.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I want to release a Java project as open-source, but i am unsure about the right platform and version control system.
There are three considerations to be thought of:
Which version control software?
Which project mangement library?
Hosted or on my own server?
Version Control
Currently i am using SVN, and i planned to migrate to GIT. But there are also other possibilities like Mercurial or Bazaar. GIT and Mercurial seem to be very similar and i didn't understand the pro's and con's of both yet. Also, i'd like to know if there are also any other good alternatives.
Project Management
Currently, i use Maven to manage the Java library dependencies and to carry out the releases. There are also other tools like Hudson or Apache Ivy and many others. They should be able to handle library dependencies and be able to include currently released versions. Deployment automation is also a plus.
To host or not to host?
Currently i use an own server to host my SVN code and Maven releases. There are so many hosted solutions out there, and i think one of them would be nice to make it easier for people to join my project if they are interested.
Some of the platforms i heard about or used are for example Github, Bitbucket, Google Code or Sourceforge. They should be able to easily integrate support for the selected version control and project management software. Additional stuff for developers like a bugtracker and a wiki are good too and need to be considered useful.
The best team
So, which combination would you recommend? I'd like to gather all information and create an overview so that people can decide for themselves which setup meets their needs at best.
Google Code is currently free and offers source control (your choice of subversion, mercurial, or git) with command-line integration, issue tracking, and wiki. I wouldn't bet it would be free for closed projects forever, but I suspect it always will be for open-source.
GitHub is free for open-source projects, and offers really powerful web tools as well as command-line git integration. Also with issue-tracking, wikis, pull-requests, etc.
Bitbucket is a similar site, also for open-source projects, that does much the same thing with Mercurial. Also with issue-tracking, wikis, pull-requests, etc.
This is a Community Wiki answer because questions asking for the "best" are best served by a wiki-style response. Feel free to edit this answer to add your view.
Here's what we're using, and are pretty happy with:
Builds with Maven
Tests with Junit. Integration tests using Maven's failsafe plugin (which uses junit)
Continuous integration with Jenkins
Hosted at github as a public repository
Git as version control system
The only gripe is that Github will limit what you can do with git. You'll have to get used to the pull request mechanism.
On The Pull request limitations:
In git, you usually want to have a workflow where people commit to some sort of development branch, and then, after someone approves the changes, it gets merged into a stable branch. Any number of combinations and workflows are possible, and each likes his own.
The trouble is that, if you want to limit what branches people can commit to, you'd have to edit the update hook on github's git repository. This is not possible in github (only post commit hooks are allowed). Github only allows all or nothing commit rights on the whole repository through the collaborator's list, but does not allow branch specific permissions.
To work around that, collaborators would have to clone the repository with the stable branch into a development repo, and whenever they have something that's ready to go into stable, they'd have to send a pull request. Following that, whoever controls the repository with the stable branch would pull from the "development repo". In other words, you need to put some of the git branch functionality into branches. This means teams of developers can't share a branch in a repo.
This limitation, however, is not too bad for a project with many individual contributors. It just gets a bit trickier when you have multiple contributing teams since they need to have a repository each.
But hey, also consider the visibility that having your project in github will provide, since that's a big plus to attract developers!
If you want real freedom of choice in tools and workflows you have to see at Assembla (hosted or running own instance)
Most of First-Class SCM (hg, git, svn)
Project management
Colaboration tools for full ALM
Free and closed projects
Biggest space for your data in free SCM-hostings
I'm new to development and I'm sure this is a silly question but i can't work out how i should be backing-up copies of my project.
When everything's working right i want to save a copy/make a back-up so that if i ever mess everything up i'll have something i can go back to, but of course it's not as simple as just copying a file like i normally would for anything else. Sorry for the silly query, but if someone could point me in the right direction as to how i should go about this that would be great!
It's not a silly question. You can back up your project directory (just make a copy, zip, etc) but I would advise you to have a look at version management (cvs, subversion, git, whatever you like). With version management you can go back to any state, create different development branches etc...
When everything's working right i want
to save a copy/make a back-up so that
if i ever mess everything up i'll have
something i can go back to
A version control system is perfect for you. Eclipse allows to clone your repository into a version control system such as CVS, SVN, Mercurial, Clearcase, Git, etc.
For me, I use Mercurial (previously using SVN), and its Eclipse plugin can be found on JavaForge.
I find Mercurial to be very handy.
It requires no server, but it still allows for multiple developers on the same project by splitting the program into two different branches of development and merging them together when complete.
Even without resorting to a version management, Eclipse provides a similar feature:
in the Preferences, go to General -> Workspace -> Local History
You can export your project as an archive and just save it somewhere, then import it whenever you need/want to. Just right click on the project, choose export and follow the instructions
Version control software is usually the best option, allowing you to create branches and browse revisions easily.
If you're on Windows, you can set up a local SVN repository using VisualSVN server very quickly.
If you'd want the repository online, have a look at Google Code (only open-source) or Assembla (they mostly offer paid services, but do provide nice and free SVN or GIT repositories).