Checkout from SVN to remote location with Eclipse - eclipse

I am in the need to set up eclipse in a way that I can connect to a SVN and checkout projects or files to a remote location. The remote location is Linux-based, the clients work with windows.
I read a few threads and it seems that it works on console with ssh+svn. But I am struggling badly to make this scenario run in eclipse.
Any hints? I appreciate your help.
Philipp

Your question sounds to me that you try to solve something, that we don't know yet. So I speculate here a little bit, and I will change my answer if the question gives indication that I was wrong.
(Part of your) development has to live on the server, so there are resources you have to use during development, which are necessary for development.
Possibly these resources are (only) necessary for testing (unit tests?), or for functional tests.
You have experience with Eclipse and want to use that.
So here are sketches of possible solutions that may work for you.
Using Eclipse on the server
You install an appropriate eclipse distro on the linux machine you have to develop on.
You install locally e.g. Cygwin with the XWin packages that allow you to start an X-windows server locally.
You open up an xterm locally (just to get the display variable correct).
You start from that xterm the eclipse installed on the Linux machine: ssh <user-id>#<ip-of-linux-server> <path to eclipse> -display $DISPLAY
Pros and cons
+ You work on the machine and have the display locally.
+ You are able to checkout directly on the machine, no need of a local copy.
- Your are not able to work without the connection to the Linux machine.
Using Eclipse locally
There are two variants, and both are valuable:
Have the sources on the server (only)
Have the sources locally
Sources on server, Eclipse locally
The easiest way is to mount the file system of the server, so you have access to them locally through a different drive letter. Ask your system administrator how that could be accomplished.
Pros and cons
+ Everything works as normal.
+ You don't have to install Subversion on the server.
- Latency for the remote file system may be annoying.
- You are only able to work with network connection to the server.
Sources locally, Eclipse locally
That is the normal way to do it. Install Eclipse with Subversion plugin as usual, checkout from the repository, work locally (even disconnected), commit your changes.
You are then able to test by doing a checkout on the server, build the system there, and do your unit and integration tests there.
Pros and cons
+ Easier to install and maintain.
- No tests during development without a build process in between.
- Tests can only be done with commited code, not with changes that are not commited.
My recommendation
I like the solution best with Eclipse on the server, so you use everything that is available on the server, and Eclipse under Linux is totally the same as under Windows. You don't have any steps in between for doing tests, everything is done locally (on the server).
See as well the following questions (and answers):
Is it possible to work on remote files in Eclipse?
PS: What I forgot: I think svn+ssh is just a different protocol of Subversion to do the checkout, update and commit. It is in no way different to using the protocols file://, svn://, http:// or even https://.

Related

Sample work-flow when using PhpStorm & GitHub on a Remote Server?

This is my current work-flow:
I have a web-server on my development machine (on the same network). It houses my project & I use Notepad++ to make live-edits to the code. I make code edits from my laptop, refresh the page (which I am accessing thru hostname on my laptop) to see my PHP/HTML edits & when I'm satisfied, I merge to the master branch on GitHub.
In an effort to become more familiar with IDEs for PHP, and have some great debugging capabilities, I want to start using PhpStorm.
I thought of moving the web-server & GitHub Desktop to my laptop and just leaving the databases on the development machine, but that creates other issues.
My work-flow might not be modern. Could you help me understand how a new & similar work-flow could potentially be setup with PhpStorm in the mix? How have you seen it done?
I'm using Laravel which has a ton of files, so constant full-syncs instead of deltas would be too much time wasted.

Is there a way on how to integrate TortoiseSVN with FileZilla?

I am using Tortoise1.6, SubversionEdge for SVN CMS and FileZilla3 (Test Server has CentOS as Server).
Let's assume the scenario:
- Test Server exists - here, developers have direct access; used for user testing
- There are 3 members in a team
- 2 of the members are developing on their local machine using TortoiseSVN
- But 1 wants to develop directly on the Test Server
--> The issue on developing directly on the Test Server are:
1.) No TortoiseSVN installed
2.) Even if SVN exist in TestServer, command scripts are tedious since it is running on CentOS (no GUI)
This issue can be resolved with team management, but the challenging part in here is how to address the technical issue (as this is maybe a future need).
QUESTION
So, my question is - is there a way to integrate TortoiseSVN on FileZilla?
Or a way that after committing changes on the working copy, files in the Test Server are also updated?
If you were on my situation, how would you address such issue aside from just team mgt/agreement?
Tortoisesvn is an explorer shell-extension. It doesn't know how to access Filezilla's functions to access the files on the ftp server.
What you can do is using a smb-share over a vpn-network. TortoiseSVN ist then able to directly see the files and display them correctly in explorer - although this solution may be quite slow depending on your network-connection.
However, what I usually do is developing locally, connect via ssh to the server and then use the svn cmd-line utility to do updates.

Is it possible to work on remote files in Eclipse?

I'm looking into using Eclipse as a dev environment for PHP projects, but it's pretty huge and I'm not sure where to look for answers. I want to be able to work on remote files from within the client - i.e., rather than using an FTP client to download copies from our remote development server, working on them locally, and then having to upload them to test, I want to be able to work directly on the remote files. I know many development environments allow this - my colleagues who work on Macs use Coda, which allows them to define sites and access all files via an explorer tree. I'm currently running Bluefish on Ubuntu, and it also allows this.
I've downloaded and installed Helios, but can't seem to find an obvious menu entry for handling remote files. Can anyone point me in the right direction?
Edited to add: we don't use version control at this point, so I'm not looking for any kind of Subversion tie-in.
The RSE (Remote System Explorer) may be what you're looking for. It's an implementation of the Eclipse File System framework which allows resources in your workspace to be backed in reality by remote resources.
Since you are working on Ubuntu, you can have a look over here
Perhaps this will be of some help
http://www.jcraft.com/eclipse-sftp/
I've never used it myself but it seems to do what you're looking for syncing and editing files over SFTP.
I usually develop using remote Eclipse. Use ssh -Y user#server to login and try executing eclipse on that shell, it should open on your computer if you have X properly configured.
Of course, this Eclipse instance will have access to the remote server files.
This is more general than Eclipse: http://curlftpfs.sourceforge.net. I usually use the SSH/SFTP version (safer): http://fuse.sourceforge.net/sshfs.html
Both are based on FUSE (http://fuse.sourceforge.net/)
Install eclipse plugin Remote System Explorer End-User Runtime.
See video at How to Edit codes and files remotely with Eclipse.
Also, check out how to configure the remote connection: Using Remote Connections.

Remote developing with Xcode?

My project files is in a remote(ftp/svn) server
How to develop the project direct in the remote server? just like a local dir ?
can do that with Xcode ?
There is a huge difference between an ftp server and a subversion server. Assuming subversion, since no one in their right mind would use ftp for hosting development work these days (seriously -- it is a gigantic pile of insecurity and cannot offer anything akin to a real filesystem experience).
So, with subversion, check out your code from the svn server to your local filesystem, do you development work, and periodically check your changes back in. In this, doing development with Xcode works just like any other subversion based development workflow.
Or you can use the rather-good-and-always-improving subversion client interface in Xcode itself. See the SCM menu.

Best practices for development with multiple machines and version control

I'm just getting into the practice of version control (I'd like to use Eclipse and SVN), and I'm not sure the best setup for my scenario.
I'm currently a lone developer and I have two computers (a work desktop and a home office laptop) that I like to use for development (mainly web-based stuff). I have access to a Linux-based and a Windows-based remote server, and I seem to always have files scattered between the two machines based on where I conduct the work.
Are there any instructions or best practices about how to set up a development environment so that when I sit down at either machine I have the same files to work with and the ability to utilize version control?
Some things I have used between my laptop/workstation/server.
If the paths are exposed create a local svn repository, and then use the network path to the repo from the second machine. Works well if you dont want to run a server but just use local files. My laptop and workstation have the same credentials, so pass through works great with the hidden paths '\machine\c$\etc'
I also like to use Unison for managing the files between my laptop and workstation. Its not versioning, and with date time hints it does rather well at 'which is newer'. Also, if you're the only one using both, conflicts are really low. I use this to manage my 'my documents' http://www.cis.upenn.edu/~bcpierce/unison/
Of course you can create an SVN server, and I have found Visual SVN to make this almost too easy. I started using this for my personal projects after the need to 'launch' to the server came up. Having the svn server on the remote server had a few benefits when it came to launching and working from home. (Or inviting other developers) http://visualsvn.com/server/
Just install SVN on one of your computers (preferably on the Linux server). I guess administrators will install SVN for you and create needed repositories.
Integration of SVN with Eclipse is really easy through plugin.
If you are new to source control (or even if you are not), reading Eric Sink's Source Code HOWTO will give a good introduction and expose you to some best practices.
I would consider a distributed version control system as well as Subversion. Even if you do go with Subversion in the end, it's good to understand all the options available to you. Personally, I'm a single developer and work in multiple locations, and have found the DVCS concept to work much better than SVN.
Git, Mercurial and Bazaar are three options. Here's a good video by Linux Torvalds which explains some of the conceptual differences.
I am implementing Bazaar as my source control solution for handling this scenario. I have used Subversion for years, but it simply does not really fit this distributed usage scenario. Bazaar does.