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

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.

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.

ColdFusion Builder 3 vs. Dreamweaver & local and remote paths

I can't wrap my head around how I'm supposed to use ColdFusion Builder 3 (akin to Eclipse).
Up until this point, I've been using Dreamweaver 5, which is getting 'long-in-the-tooth', and I wanted to give CF Builder a try.
So, in Dreamweaver, it's pretty simple: you setup connections to servers using credentials... There's a Local path, which is the local copy of your code, and the webroot of the Server which is the 'live' copy of your code. Basically, you make a change to the local copy, and PUT the change to the Server. Easy peasy lemon squeezy, right?
But, how does this translate to ColdFusion Builder 3?
Just to give you an idea of our infrastructure.... we have Development and Production. Each of these boxes has multiple web instances, example: Accounting, Human Resources, IT. Each of those web instances could have multiple applications.... I'm only considered about my instance, IT, on both the Production and Development servers.
Is a workspace supposed to represent an instance on a web server?
In CFBuilder, should I configure 1 server per web app?
Is a project supposed to represent a web app?
Am I supposed to use drive mappings to the inetpub wwwroot for access to web applications? Is it even considered kosher to have a drive mapping to the web root? \server\c$\inetpub\wwwroot
Where do I keep my local copy of my code?
How do I move items from Development to Production?
My main confusion is with workspaces, projects, and servers... My intent is to debug and 'view page in browser' from CFBuilder.... However, when you setup a server, under Server Mapping and URL Prefix, you're supposed to indicate the Local and Remote paths, plus this is not directly related to the physical location of the project.... and as I've mentioned, there's multiple instances, multiple applications, and the development box is not my local machine, it's a remote server...
I would really like to know how others have made this work for them.
I really don't mind this question even though it's not directly code related because I've been using ColdFusion Builder (CFB) for years and there just isn't enough good documentation out there. I now enjoy a great experience with CFB thanks to blog posts and sharing experiences with other devs :)
My setup: CFB3 running on Windows 8.1, dev server running on a Virtual Machine so it is treated as "remote server" just like yours. I also update remote staging and production servers (although not directly from CFB).
First, let's set some reasonable expectations: Dreamweaver and CFB are very different in that CFB focuses on programming and Dreamweaver on design. CFB is built on eclipse and therefore has the advantage of benefiting from most eclipse plugins.
Your question is specifically about how to set up your projects in CFB using 2 remote servers (dev and prod). It's different for everyone but I'll share my setup with you. (sidenote: My projects are also stored in Git repositories - 1 repo for every app)
Starting from the top: A workspace in CFB deals with your whole eclipse application, not just your projects. The most important things kept in this directory are snippets and plugins. You do NOT need to keep your project files in here. This is merely the main directory where all of your settings are kept. You are not required to have more than 1 workspace (I only have one). Why would you need more than one? You may be multifaceted programmer who needs to keep separate workspaces using separate tools (like different plugins, snippets, window layouts...)
To answer your next question (1 server per web app), all you need to to is configure your dev servers in the "CF Servers" tab. You need to add 1 server per web instance for every instance that you'd like to test on. Hopefully, your dev server has RDS enabled (very helpful for remote database and file viewing, just like in Dreamweaver). During configuration, don't worry about Mappings or Virtual Host Settings (I have another recommendation later). Once configured, you'll be able to assign that server to a project.
Drive mappings: I would never recommend mapping to the webroot of a shared dev server. If you were to use that drive map as your local directory, your changes will be made directly to the development server. What you want to do is create a new project by right clicking in the Navigator area and select Import > Other > FTP. Follow the steps, choose anywhere on your local drive to store the files, then choose "New project" at the end (this will add the .project file necessary for CFB to control the project).
Once the project is created, right click on it, select ColdFusion Project and choose the CFML Dictionary version you'll be using (CF11, 10, 9...). Then, select ColdFusion Server Settings and choose the dev server. This is necessary for testing.
What you now have is a local directory with your app and eclipse knows about the remote server. In order to synchronize, you right click on the project, go to Team and synchronize from there. For detailed information about synchronization over FTP, see the help section "Guide to WebDAV and FTP".
Moving to production is not as simple as it was in Dreamweaver. The FTP configuration information only allows for 1 connection (thus giving you a list of files synchronized between your project and the dev server). Therefore, you'll need a third party FTP client to synchronize between your local project and your prod server.
As promised, my last entry will be able the "debugging" which is why I said to skip the mappings and virtual host settings in CF Server config. I really, really recommend using a third party paid plugin called FusionDebug (http://www.fusion-debug.com/). This plugin facilitates the setup and allows you to step-into all of your code (which doesn't work so well in native CFB). There's a 30 day trial and I recommend you try before your buy (or license for a year in this case!)

Checkout from SVN to remote location with 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://.

What happens to existing workspaces after upgrading to TFS 2010

I was looking for some insight about what happens to existing workspaces and files that are already checked-out on people, after an upgrade to TFS2010. Surprisingly enough I can not find any satisfactory information on this. (I am talking about upgrading on new hardware by the way. Fresh TFS instance, upgraded databases)
I've checked TFS Installation guide, I searched through the web, all I could find is upgrade scenarios for the server side. Nobody even mentions what happens to source control clients.
I've created a virtual machine to test the upgrade process, The upgrade was successful and all my files and workspaces exist in the new server too. The problem is: The new TFS installation has a new instanceID. When I redirected on the clients to the new server, the client seemed unable to match files and file states in the workspace with the ones on the new server. This makes me wonder if it will be possible to keep working after the production upgrade.
As I mentioned above I can not find anything on this, it would be great if anyone could point me to some paper or blog post about this.
Thanks in advance...
When you do an upgrade your server ID should stay the same. You may need to chnage it is you want to clone your enviroment.
In your test senario you are creating a clone of the TFS server rather than a strate upgrade.
ChangeServerID
You are probably running into problems as this has been run on your test envionment to facilitate it runing on the same network as your production TFS server.
All workspaces and shelvesets remain unchanged, and people will be able to continue working immediately. Even checked-out files are OK and will be picked up correctly.
I would recommend upgrading the server first, and keep the clients as 2008 (using the Forward Compatibility Pack), and then upgrading the clients to 2010 as and when the projects are upgraded.

How do you apply patches on a web project at production server?

We recently had a project where we released beta of a big web app on our client's server. Our client requested us to do bug fixes as they come, and we tried to do it same way. Normally while building an app on our prototype server is way easier, as I just have to issue simple 'svn up' command which takes a second.
But on production environment, we do not have any version control tool available. Is it possible to automate the patching work, so that we need not to login to ftp and upload each a every file one by one?
Its very difficult to work this way. As I'm having this problem, its for sure that some of you have already solved the problem. Please share your solutions.
Looking forward to your replies... Thanks a lot for reading guys.
Depending on the tools available on the server, you could either do a svn diff -r x:y where x is the revision you last updated too and y the last revision you want to update to (probably the last revision on your repository) to generate a patch and then apply the patch with the patch command.
If rsync is available on the production platform, and you can use it (though ssh for instance) you could set up a production ready tree, rsync it on the production server, and when an update comes in, svn update your production tree, and rsync it again.
What is stopping you from installing a Subversion client on the production server?
[EDIT] So someone doesn't allow you to install the software you need on the server. The question is: What is more important? A stable production server or an arbitrary policy? If the someone doesn't listen to arguments, go to your computer, start MS Word and write this letter:
"I hereby refuse to accept any responsibility for the stability of our production system based on the fact that [insert name here] refuses to equip me with the tools to make sure that the production system contains all the necessary files and data after an installation."
Sign this, have your boss sign it and then send a copy to [insert name here]. All of a sudden, any problem that might arise after an installation will be on his turf. Or to put it more clearly: He will be responsible for any mistake you might make.
Now, all you have to do is wait. :)
Depends on the programming environment you use. In Smalltalk and the web application server like Aida/Web we can upgrade the live web applications on the fly, without stopping it.
The server is connected to the SCM of choice like Monticello for Squeak Smalltalk or Store for VisualWorks. New versions are then manually or automatically loaded to the server's Smalltalk image.