6

Sorry for the bad title (couldn't think of a better way to describe it)

I have a windows machine which I do development on. However, I have a new project which needs to interact with a linux system (executing linux commands etc.).

So, obviously I can't do development on my windows machine..and I don't wish to code on the dev machine, svn commit and then svn update it on the linux machine.

Is there a way where any changes I make on my dev machine will be quickly mirrored to the linux machine? SVN is not a very quick alternative and of course some changes will be very minor.

Any ideas? A network share I guess....but that's not very pretty (bit slow too).

As fellow developers I would like to know if you've been in a similar situation and how you've resolved it.

On a furthernote, I can't just install Ubuntu as my development machine and mirror the commands, applications etc. from the linux machine because it's a cluster 'master' machine and so therefore it has quite a special configuration.

Thanks guys!

EDIT: I've also thought about having web services on the linux machine and then just calling them from code thus seperating platform development dependency. What do you think about that too? thanks

sepehr
  • 17,110
  • 7
  • 81
  • 119
Flukey
  • 6,445
  • 3
  • 46
  • 71
  • @Jamie What is the language you are coding at? What IDEs using? – mosg May 26 '10 at 13:01
  • Hi mosg. The language is php and is using the symfony framework. IDE - Eclipse PDT. – Flukey May 26 '10 at 13:01
  • 1
    This is a recommendation, not an answer. Place the code on the Linux machine, in a WebDAV directory. Then under windows create a WebDAV connection and so, you're in! Actually you're developing on the Linux machine remotely. http://en.wikipedia.org/wiki/WebDAV http://ase.tufts.edu/its/supportWinWebDav.htm – sepehr May 26 '10 at 13:03
  • Argh, I could use webdav, have you used it before? And how did you find it's latency, reliability, etc.? – Flukey May 26 '10 at 13:08
  • Thanks for the editing the title Sepehr! much better :-) – Flukey May 26 '10 at 13:11
  • 1
    Welcome, Jamie. Yes, I did & that was a good experience. latency depends on your connection. In my case that was reliable enough to go with. You might want to test a WebDAV connection to the linux machine before deploying the whole project on it. – sepehr May 26 '10 at 13:26

3 Answers3

4

Edit your files on the Linux machine, using Samba to expose them to Windows file-sharing.

(Alternatively via SFTP, but Windows software to mount SFTP as a filesystem isn't free.)

bobince
  • 528,062
  • 107
  • 651
  • 834
  • Is there any downfalls to use WebDAV instead? – sepehr May 26 '10 at 13:28
  • Yeah, WebDAV's another similar possibility, if you don't mind your user authentication stuff being done through the web server, which can be a bit of a rigmarole. – bobince May 26 '10 at 14:07
  • This is the path I went down in the end. First of all, I started off using WebDav, however, Windows 7 has many many problems connecting to WebDav directories - very annoying. So this was a no go. Using XMing X11 Forwarding for developing in an IDE was a bit too slow and not efficient enough. So i decided to set up a samba share to do my development on and things work a treat! Thanks all! – Flukey May 27 '10 at 08:25
3

Have you considered using an XServer on your Windows box? You should be able to fire up a desktop session on the Linux box and have it display on your Windows machine.

Depending on how Linux-savvy you are, you may be able to get away with simply using SSH to get a terminal window, then editing files with vi or emacs. If you're working with PHP, I assume that you'll be able to see the results with your regular browser. I've done this a lot, and while it's not a full-on IDE, it's certainly workable.

TMN
  • 3,060
  • 21
  • 23
  • Hi there. Incidentally, just this minute a colleague introduced me to XMing. It's rather wonderful! Going to see how Eclipse will perform as an XWindow on Windows. I will report back. – Flukey May 26 '10 at 13:27
2

You can developp your app in Windows and test it throug cygwin ;)

Dimitri
  • 8,122
  • 19
  • 71
  • 128
  • Although that's a good idea, it's not possible. This master linux system has lots of cluster and bespoke tools, tools which cannot be installed through cygwin etc. alas. – Flukey May 26 '10 at 13:02
  • Jamie, So you have to develop on that machine remotely. – sepehr May 26 '10 at 13:04
  • Another solution possible is to write a script which deploys your app throug ssh on the linux system. – Dimitri May 26 '10 at 13:05
  • I could do this too - but the project will also be using ExtJs (which is about 25mb in size (or something ridiculous). Uploading that every time would be slow. Thanks for the suggestions! I appreciate them :-) – Flukey May 26 '10 at 13:10
  • Another solution you can try Write a script that commit your changes in your svn and connects you in your linux system. YOu will have to do svn update ;) – Dimitri May 26 '10 at 13:17
  • 2
    You could use rsync over ssh to only copy deltas each time – Kieron May 26 '10 at 14:03