Possible to use Subversion without a Host? That is, locally - eclipse

I am starting a small project in Eclipse(plus Tigris) and I'd like to try out Subversion on it. I don't have any repository on the web.
Do I need to have a repository on the web to be able to use source control? From what I've been looking all Eclipse allows me to do is to either checkout from a Host or add a new repository (from a Host).
I've been using Mercurial for a while and all I needed was to do a folder_name init to add that folder to source control. How to do the same with Subversion?

Subversion makes this easy. You can create a local repository on your system and reference it using file:// paths.
See http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository.html#tsvn-repository-create-commandline for how to create using either the TortoiseSVN GUI, or the command-line.
NOTE TortoiseSVN is a graphical front-end for Subversion, implemented as a Windows Explorer extension. It makes lots of common Subversion tasks really painless. Subversion of course ships with a command-line client so it's your choice which to use.

Just do
svnadmin create xyz
The URL will be, for example, file:///home/yourusername/xyz

Sure. I have subversion set up on my home computer with a local repositry and the server installed as a service. The URLs you use then point to localhost 127.0.0.0 instead of an external web address.

Maybe you should look into GIT. That doesn't require a server. http://git-scm.com/

I use VisualSVN and it works like a charm. It takes like 3 minutes from when you download it to when it's working in eclipse (assuming you have subclipse installed already and whatnot.)
www.visualsvn.com

Related

In an eclipse based IDE, how do you access remote files through two ssh connections?

I'm working remotely and I need to access files on a server that's only accessible through ssh from another machine.
For example if my files are on server2, I need to ssh me#server1 then once I'm on that machine, ssh me#server2
Is there a way to set up remote systems in eclipse (I'm using Zend Studio) to get access to my files?
Thanks.
The short answer is No, however you you do have some options...
Eclipse is only aware of files in an Eclipse workspace (with some exceptions), thus you need to make your files available to your Eclipse instance. To do so, you could download the remote files and make them available locally or make te files accessible via a network share.
All in all, you need to make those files available on a file system visible to the local Eclipse instance. Once that is done, you can add/import the file into your Eclipse workspace.

Run Eclipse EPIC Perl Plugin on Remote Project/Files

I recently started a new job, where all development is done on a remote dev server. I really like Eclipse as a centralized development environment for all the different stuff I'm working on, and am not a particularly big fan of emacs or vi. I'll use emacs if I have to change something quickly, but after really trying to like it for normal development, I'm really starting to miss Eclipse.
That said, is there any way I can use Eclipse with EPIC for Perl development on a remote server? I can live without debugging functionality, but proper syntax highlighting, and the ability to create projects would be really, really nice. So far, I've tried using a remote browser plugin for Eclipse to peruse the remote dev server and open stuff into Eclipse that way, but it is far from ideal. Anyone have any better ideas?
Answering my own question (which no one seems to have looked at or care about, but what the hell-- maybe someone will have the same issue):
Grab Remote Systems Explorer from here.
Setup RSE to ssh into your remote server.
Create a new empty EPIC project (or using whatever plugin/ language you want).
Right click the project, select "New Folder," then
Advanced >> Link to alternate location (Linked Folder)
Switch file system to RSE, then just browse to some folder on your remote system you'd like to become a project, and add it.
That's it, you're done. Now when you open your project in Eclipse, you'll see that folder with all the code you wanted, and you can use it just like you would locally.
The main problem I'm seeing with this right now is that currently I can't get it to do any error checking, which is too bad. I'll work on finding a work around for that and update here if I do.
If you're on linux, you can also mount the remote drive/folder with sshfs and use the same "linked folder technique". I do this all the time for Java EE development. sshfs is also very reliable, unlike Windows network shares mounted on linux with Samba-Client. (Sometimes the Windows sharing service gets confused. And needs to be restarted on the remote server. I use a powershell one liner for this "restart-service -name 'sharing service' " or something likeĀ“that.)

Netbeans: Remote project w/source files over SSH?

Is it possible to set up a remote NetBeans C++ project where the source files are only accessible via SSH?
My project needs to build on a Linux box, but I'd like to develop it on a Windows machine.
Checking out the code via SVN to my Windows machine is not an option since there are a few files that differ only by case, and NTFS is not case sensitive (unfortunately, I can not change them).
I'm well aware that Windows can be kind-of forced be case-aware and the ideal solution is to just re-name those file to something sane.
However, I'm just trying to solve this using NetBeans. Since it's a remote project anyway, why bother to keep any files locally.
Thanks
Currently, no. In general programming files with different cases of the same name is a bad practice.
You can enable case sensitivity in Windows - you may need to have a Professional version or better.
For Windows XP: http://support.microsoft.com/kb/817921
For Windows 7: http://technet.microsoft.com/en-us/library/cc732389.aspx
See also: Windows Services for Unix
Another solution would be to setup VNC/RDP on the remote Unix system. The overall solution should be to conform to a better file naming convention:
Programmer 1: "Hey man, take a look at noCamelCase.cs - I just rewrote it."
Programmer 2: "Um, nocamelcase.cs is blank."
There are two ways of doing remote builds with Netbeans. The first, the project is stored locally. You just create a regular project and on the 2nd page of the wizard you specify the network directory with the source and the remote build host. I've used this for Solaris client to Linux server, but not from Windows as we don't have the mounts exported by SMB. This uses ssh and some shared lib interposers to get the build info.
The second way is to create a remote project. In this case the project is created on the remote host and date is copied on demand to the client. I've only doe a few tests with this as I preferred the first method as it had much better latency.
Lastly, you could either use vnc or install X on your windows machine and do everything on the Linux machine.

Workflow incorporating Subversion, FTP, Editor

Currently I am working on a project that involves the following daily workflow:
Update local code and edit
commit to subversion repository
ftp to a testing server
I have been using Netbeans to handle all of this but frankly it, combined with the other stuff I am running, eats up all of my machine's resources frequently leaving it sluggish. By switching to a lighter text editor, a standalone ftp client and a standalone svn client I avoid the slowdowns and resource hogging but working becomes clunkier as I move between apps. Basically I really like Netbeans but until I can get a more powerful machine (Macbook Pro next week?) I am stuck.
What is your workflow? Any suggestions on how I can improve mine? Can I cut out FTP with Subversion in some way?
p.s. Subversion use is cast in stone so no git. Also, I'm on a Mac.
On Mac, I use TextMate as my editor of choice. Lots of language goodies for speeding development in whatever language you're doing via Bundles. It has an SVN bundle, which lets you update/checkout/commit directly. I use that for quick updates/checkouts. On my test server, I have another SVN working directory. I set up an SVN Post Commit hook to 1) automatically update the test server with the latest code, and then 2) send a twitter message to inform other developers of the change.
If I want to do more in depth work on the SVN repository (tags, commit logs, diffs) I tend to use the command line, or use a dedicated client like Cornerstone.
Eclipse is an IDE, which also includes syncing with version control, and FTP.
maybe install svn on the testing machine and do an update automatically every ten minutes or so. Or at a specific time.
Just an idea.
Sascha
Almost all the programming editors (Vim, Emacs, etc) support subversion integration.
The only missing link is the FTP to test server. You can do this easily with a post-commit hook in subversion.
If you want to run some pre-commit tests as well, check out this script I had written some time back:
http://code.google.com/p/svn-pre-check/
In case someone is still looking for svn ftp connection i would suggest svn2ftp.

Installing a source control without admin rights

I'm forced to use SourceSafe at my job. There is no way this is going to change. I would like to use another source control for my own need in parallel. I want to be able to keep an history of my modifications, branch easily and merge. I can install any application that doesn't requires admin rights. I cannot install Python or anything that integrates in File Explorer.
I'm not much of a command line guy so a GUI is a must. I managed to install Mercurial but not TortoiseHG. There is a chance msysgit would install but the GUI isn't very good.
Any suggestions?
you can install svn command line just by unzipping it, but if you want TortoiseSVN for the GUI then I you may need admin rights, not sure. But you don't need a separate gui if your IDE supports SVN, like Eclipse or any other java IDE does.
Git has a pretty nice command-line interface with color and auto-completion. After reading the Pro Git Book I found the command-line is great.
There is GUI bundled with it. It is nice for viewing logs and merges but may be not to your taste. There is also a TortoiseGit shell extension (like the famous TortoiseSVN), but that would require admin privileges to install (as opposed to Git portable).
Install and use a Virtual Machine product and go crazy with whatever you want, then look for another job.
I would check out SourceGear Vault, it has SourceSafe Import and SourceSafe Feature support. This may need admin rights though...
Another tack is to synchronize a copy of the directory to another machine where you do have some rights. I would recommend rsync -- I think there are several Windows versions available.
On this other machine you can now use whatever tools you like. I know it's a kludge, but then so is working on a system where you aren't even trusted enough to install something like Python.
AFAIK any TortoiseXX will need admin rights as it needs to hook up explorer.exe to use it. you should still be able to use hgtk part of tortoisehg to get at the windows though
There is no way this is going to
change
I don't mean to say that you should shout your head off about how svn, or whatever, is great, and moan about VSS all the time. But I find it hard to believe that a well-reasoned proposal to switch to a newer, better version control system outlining the pitfalls of VSS (no security - all users have write access to the history of everything, for example) would be ignored.
If you can't install programs that integrate with explorer, then using any version control system is going to mean learning to use it from the command line!
Check out bazaar (bzr). I've not used it personally but it claims to have an excellent gui which may mean you don't need a TortoiseXX install.
Just use a version control tool from the command line. It isn't painful and it can be automated quite easily via your existing tools. SVN isn't going to be great when interacting with an existing version control system (it is finicky about files/directories being deleted, renamed etc), whereas the DVCS tools (I prefer Mercurial) are much smarter about it.
My recommendation: Use Mercurial. It has sane ignore rules so it can be trained to ignore VSS cruft, a single .hg directory that contains all the VC data, and easy branching (which will help you change gears more often). git is fine too, but has a steeper learning curve.