I need to write an application that can check out an SVN revision to reference in the local filesystem. Is there an API that makes easy work of this? Other options include getting right down to the socket layer and writing the files myself or (absolutely do not want to do this, but it has to be left as a valid option ->) making calls to an external svn client on the local machine.
I personally like SVNKit for Java. I have used both the IDE plugins and the API itself and it provides plenty of functionality for interfacing with an SVN and diffing specific files
There are Subversion bindings or libraries for C/C++, Python, Java, Perl, .NET and I'm sure other environments I'm overlooking.
SVNKit is the first hit on Google when searching for "subversion Java".
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 am doing various projects acroos diff computers , servers and diff languages like php python java etc.
Now on every computer i have to install / download various supporting libraries like javascript libraries for PHP , Jar files for Java and many python modules.
Is there way so that i can make online folder on server with only libraries and then automatically sync them across different computers. There may be some solution out there for this but i don't know it
For java and php there is no need to install them but i don't know whether python modules or libraraies work this way or not like south, PIL, matolib etc.
Is there any thing which can help me with this
Maybe get some version management on the job, which is synced to the server e.g. GitHub or BitBucket.
I would suggest taking planetjones version management idea (GIT or SVN), and pairing that up with scripts to setup the required libraries in your environment. If you've different python environments - I found this interesting: http://pypi.python.org/pypi/virtualenv
For Java projects, you could give Maven a try, and configure you own repository on your server. Don't know if it can be used for the other languages, however.
I want to create a "virtual" file that, when accessed, will be d/l (by my background application). This should work if the file is accessed by windows explorer, or by other application (e.g Microsoft Word...)
What is the best way to implement it?
EDIT:
Can this be implemented by Shell Extensions?
It sounds as if you're about to write a virtual file system driver. That's a pretty hard task in pure C, limited debugging support and many reboots.
If I'm not mistaken, the task is so hard that there are several commercial offerings that provide tools and libraries that considerably simplify the implementation.
Update:
A starting point is Microsoft's Installable File System Kit, which is a part of the Windows Driver Kit.
What you're describing sounds a lot like WebDAV. There are already servers that support this protocol (including Apache), and Windows appears to support it either natively or via an add-in feature.
You can also choose to implement an CIFS/NFS server instead. I don't know about the current state of Alfresco's JLAN, but they did open source (some of?) the code. Perhaps ask for an update here: Open Java SMB server implementation
I am practicing java in Eclipse both in home and college.
Is there any way that when i co the coding the file save on some server and syc there and then when i go to college then again i can use same file
You should look into using a distributed version control system like mercurial on bitbucket. The advantages of mercurial and bitbucket are really easy setup and unlimited private repositories (github doesn't offer this) which is perfect for course work and you get your stuff backed up on the cloud.
You need a revision control system. Take a look at the various plugins for Eclipse, like for example git or svn plugins.
What you need here is Revision control, but you will need to install it in a server you have access from both college and home. Maybe your college can provide you with some space or you might start a personal project in google code or gitHub. :)
I find CollabNet SubVersion Edge pretty Straightforward and easy to configure.
I've got a couple of projects where it would be useful to be able to interact with an SVN server from Google App Engine.
Pull specific files from the SVN (fairly easy, since there is a web interface which I can grab the data off automatically, but how do I authenticate)
Commit changes to the SVN (this is the really hard/important part)
Possibly run an SVN server (from an App Engine app, I'm guessing this isn't possible)
I would prefer a python solution, but I can survive with Java if I must.
you can try using SVNKit with the java runtime
DryDrop (http://drydrop.binaryage.com/) is a Git based solution you may want to look at for comparison of what you're trying to do.
You can talk to a svn server(if setup with apache running mod_dav_svn) using the webdav protocol. See apache's implementation details Problem is that google appengine's urlfetch system doesn't allow for HTTP request methods other then GET, POST, HEAD, PUT and DELETE. (webdav uses custom request methods like PROPFIND, PROPPATCH, etc..) So at this time you are restricted to just viewing the contents of the svn server.
You can however use google appengine to implement a webdav provider. Have a look at the gae-webdav project for more information.