Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

A project I'm working on was hosted on a svn repository at bettercodes.org. This was under another user's name and that repository is now unavailable.

The person responsible for the project was sent an export from Eclipse and I had a more or less up-to-date project on my machine. I could see no other option than to commit my copy of the project to another repository. It is now possible that some of the most recent changes by another programmer are missing.

Now, what options do I have to bring this project together? Is some of the necessary metadata saved on Eclipse or are all the changes on the original repository? What tools could I use to check what is missing in terms of classes, config files and code?

share|improve this question
add comment

5 Answers

up vote 4 down vote accepted

What kind of project is this? Why is the repo unavailable?

In the case of SVN, all the changes and diffs are in the server repository and not on the clients. You're going to somehow need to get access to the original repo if you want all the other data.

Some of the distributed version control systems, like Git and Mercurial, store all the metadata on all machines using the repository. In the future, it might be a wise idea to use one of those. Or, use an SVN server under your direct control.

share|improve this answer
add comment

As whatsisname says, in a separate answer, in SVN all history information is in the server repository and not on local clients.

I'd say your best bet is to try really hard to make contact with bettercodes.org - see their "About us" Contact Page, and:

  1. Explain the situation
  2. Provide documentation/evidence as to why you, or your organisation has rights to use the code.
  3. Request a downloadable copy of the code, with history
share|improve this answer
add comment

If at all possible, ask that programmer what his last change was (or get him to review the code you do have). As far as I am aware Eclipse will not have kept history or actual source, as SVN is the place to keep that. At best it will have reference to SVN commit numbers - now useless to you.

Going foward - (and OT but I thinks is worth mentioning) When choosing another rev. control tool, consider a distributed tool such as GIT or Mecurial. With these you have the entire history stored locally, so the lose of the "master" repo is not a big deal, you still have all of the history, and you can pull changes from any other repo, so you could recover the most recent changes provided the commiter of those still has his local repo. These tools can still operate in a similar fashion to the SVN concept of a master repo if thats how you want them to.

(OT)Thank you for this question - it adds fire-power to an argument that "the cloud" is not a suitable/reliable repository to store mission critical data.

share|improve this answer
    
going to git won't solve the problem - where he has a copy of the latest version on his own box, but changes made by another coder cannot be retrieved. In a git environment, you still wouldn't be able to pull his changes if that coder's repo is dead. Otherwise, what you say is quite true. (which is ultimately, make backups :) ) –  gbjbaanb Nov 9 '11 at 23:47
    
Normally with GIT people run a "master" repo and push to it/pull from it. Therefore there is usually at least two copies of the latest changes. You are right, none of these replace a real backup, and backing up data in the cloud is important. (GIT makes that a trivial exercise.) –  mattnz Nov 10 '11 at 1:40
add comment

One option is to ask the community around the project.

If anyone worked via git svn or hgsubversion then you could use their repository (with all of its local history) to create a new svn repository with complete history.

Given the way that these tools maintain a linear history by using rebase before every push, these repositories should be fairly linear, making them easier to convert back to an svn repository.

There are some pointers on how to do this for git in this stackoverflow answer, and there is information on how to do this for mercurial on its wiki

Alternatively, this might be a good time to move your project to git or hg, where you can get the advantages of hosting on sites like github or bitbucket.

share|improve this answer
    
@downvoter - I assume the down vote was due to perceived DVCS evangelism. I've edited my answer with information on converting back to svn to correct this. If that wasn't your objection, please let me know how I can improve my answer. –  Mark Booth Nov 10 '11 at 11:18
add comment

If all else fails and there aren't any nifty Eclipse tricks (I don't use Eclipse, so I have no idea :P)...

Do you know who worked on the project? If so, if you stick your repo up somehwere, you could get diff patches from other developers and apply them to your project.

How to create and apply an SVN patch

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.