473,396 Members | 1,987 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Publish to live site from Subversion

Ive been using Subversion for a while to maintain the PHP web apps and
sites I develop in my Windows box. But when I want to publish a new
release I update the live site manually and I want to improve this process.

I cant simply export to a fresh directory and upload all files because
that wont handle renames and deletions (and the upload will take
forever anyway). I typically use WinMerge to find out what files changed
but therere some drawbacks:

* It cant compare files through FTP (and if it could, I guess itd need
to download the whole site every time) so I need to maintain a local
copy of the live site and upload files manually.

* It cant use the repository information so it wont ignore
non-versioned items (settings, uploads, caches, data) unless I maintain
a separate filter duplicating the svn:ignore data.

I could keep my current method and write a bunch of Subversion hook
scripts in PHP (Im not proficient in any other language available) to
keep the data in synch but I looks like a overwhelming effort that can
easily break. So I wonder how is everyone else doing it. But according
to my googling the answer is: writing lots of custom scripts!

Is it the only way? Is there a tool to help with this common task? Can
Apache Ant be used for this? How do *you* do it?

--
-- http://alvaro.es - lvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programacin web: http://bits.demogracia.com
-- Mi web de humor al bao Mara: http://www.demogracia.com
--
Nov 13 '08 #1
9 5978
lvaro G. Vicario wrote:
Ive been using Subversion for a while to maintain the PHP web apps and
sites I develop in my Windows box. But when I want to publish a new
release I update the live site manually and I want to improve this process.

I cant simply export to a fresh directory and upload all files because
that wont handle renames and deletions (and the upload will take
forever anyway). I typically use WinMerge to find out what files changed
but therere some drawbacks:

* It cant compare files through FTP (and if it could, I guess itd need
to download the whole site every time) so I need to maintain a local
copy of the live site and upload files manually.

* It cant use the repository information so it wont ignore
non-versioned items (settings, uploads, caches, data) unless I maintain
a separate filter duplicating the svn:ignore data.

I could keep my current method and write a bunch of Subversion hook
scripts in PHP (Im not proficient in any other language available) to
keep the data in synch but I looks like a overwhelming effort that can
easily break. So I wonder how is everyone else doing it. But according
to my googling the answer is: writing lots of custom scripts!

Is it the only way? Is there a tool to help with this common task? Can
Apache Ant be used for this? How do *you* do it?
I use svn or cvs here (depending on the project). I just keep a
development system then use one of the many FTP programs which compares
file date/time (ie. WinSCP, FileZilla, CoreFTP).

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Nov 13 '08 #2
On Nov 13, 6:11*am, "lvaro G. Vicario"
<alvaroNOSPAMTHA...@demogracia.comwrote:
Ive been using Subversion for a while to maintain the PHP web apps and
sites I develop in my Windows box. But when I want to publish a new
release I update the live site manually and I want to improve this process.

I cant simply export to a fresh directory and upload all files because
that wont handle renames and deletions (and the upload will take
forever anyway). I typically use WinMerge to find out what files changed
but therere some drawbacks:

* It cant compare files through FTP (and if it could, I guess itd need
to download the whole site every time) so I need to maintain a local
copy of the live site and upload files manually.

* It cant use the repository information so it wont ignore
non-versioned items (settings, uploads, caches, data) unless I maintain
a separate filter duplicating the svn:ignore data.

I could keep my current method and write a bunch of Subversion hook
scripts in PHP (Im not proficient in any other language available) to
keep the data in synch but I looks like a overwhelming effort that can
easily break. So I wonder how is everyone else doing it. But according
to my googling the answer is: writing lots of custom scripts!

Is it the only way? Is there a tool to help with this common task? Can
Apache Ant be used for this? How do *you* do it?

--
--http://alvaro.es- lvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programacin web:http://bits.demogracia.com
-- Mi web de humor al bao Mara:http://www.demogracia.com
--
What I've been doing is to determine where the document root is on my
hosting (eg domain.com/html, public_html, whatever) and make that into
a symlink pointing to a different directory where the site lives.
Then when I have an update to do, I export the version I want to
upload, tarball it up, upload it to my hosting, expand it, and then
delete the old symlink and create a new on pointing to the new
directory. If you do both operations at the same time it's very
nearly atomic (eg rm html;ln -s versionNumber.html html).
Occasionally you'll run into a situation that requires you copy some
files from the 'old' directory and overwrite something in the 'new'
directory (such as image files that your users have uploaded,
etc. .htaccess and .htpasswd may also enter into the mix. It stays
largely clean, however.

This generally requires access to the command line of the server, and
not all hosting allows you to SSH into a shared server. (Nexcess.net
does, I'm working with them on a project currently.)

There's more than one way to skin this cat. rsync (if available)
would provide another solution, as well.
Nov 13 '08 #3
Ive been using Subversion for a while to maintain the PHP web apps and
sites I develop in my Windows box. But when I want to publish a new
release I update the live site manually and I want to improve this process.

I cant simply export to a fresh directory and upload all files because
that wont handle renames and deletions (and the upload will take
forever anyway). I typically use WinMerge ...
Why? Why don't you just do an "svn update" on the web server? Failing
that (because subversion is not installed, for example), you could try
to mount the site directory somehow to your computer and use the
subversion installation on your local PC to do the update.

But it really is much easier to install the subversion client on the web
server.

You might find this useful:
http://www.howtoforge.com/set-up-a-m...r-php-websites

Best regards,
--
Willem Bogaerts

Application smith
Kratz B.V.
http://www.kratz.nl/
Nov 14 '08 #4
Willem Bogaerts escribi:
>Ive been using Subversion for a while to maintain the PHP web apps
and sites I develop in my Windows box. But when I want to publish a
new release I update the live site manually and I want to improve
this process.

I cant simply export to a fresh directory and upload all files
because that wont handle renames and deletions (and the upload
will take forever anyway). I typically use WinMerge ...

Why? Why don't you just do an "svn update" on the web server?
It's an idea I hadn't thought about. If the live site is a working copy
of a special branch (let's say, branches/live) all I need to do is
merging the desired changes into branches/live and then updating the
working copy. Apache can be configured quite easily to prevent access to
..svn directories.

The only hassle is that I need to open my repositories to the outer
world. And, of course, a hosting service with Subversion client is not
always at your reach (where I live, customers seem to adore the
overpriced poor quality hosting offered by well known local brands).
Failing that (because subversion is not installed, for example), you
could try to mount the site directory somehow to your computer and
use the subversion installation on your local PC to do the update.
I recall having tried Windows' "Network Places" to mount an FTP site but
I discarded it because it was pretty useless (it would not allow command
line, drive mapping or shell extensions). But perhaps there's a
third-party tool I could use.

Thank you for your suggestions.
--
-- http://alvaro.es - lvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programacin web: http://bits.demogracia.com
-- Mi web de humor al bao Mara: http://www.demogracia.com
--
Nov 14 '08 #5
Jerry Stuckle escribi:
lvaro G. Vicario wrote:
>Ive been using Subversion for a while to maintain the PHP web apps
and sites I develop in my Windows box. But when I want to publish a
new release I update the live site manually and I want to improve this
process.
[...]
I use svn or cvs here (depending on the project). I just keep a
development system then use one of the many FTP programs which compares
file date/time (ie. WinSCP, FileZilla, CoreFTP).
The idea is feasible (Subversion keeps the original file dates) but all
FTP clients I've tried along the years are terrible at the task of
syncing trees. (Note to self: eval SyncBack again.) But I still need to
duplicate the handling of non-versioned items.

Thank you for the tip.

--
-- http://alvaro.es - lvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programacin web: http://bits.demogracia.com
-- Mi web de humor al bao Mara: http://www.demogracia.com
--

Nov 14 '08 #6
"Álvaro G. Vicario" wrote:
The only hassle is that I need to open my repositories to the outer
world.
As long as you're configuring apache properly, you'll open *only* the
subdirectories you want, not the enrite SVN tree.

Or am I missing something there?

--
----------------------------------
Iván Sánchez Ortega -ivan-algarroba-sanchezortega-punto-es-

----------(8-) el hombre con el rabin de la boina m s largu del mundo
Nov 14 '08 #7
The only hassle is that I need to open my repositories to the outer
world.
You can restrict access to a limited set of known IP addresses.
I recall having tried Windows' "Network Places" to mount an FTP site but
I discarded it because it was pretty useless (it would not allow command
line, drive mapping or shell extensions). But perhaps there's a
third-party tool I could use.
If you do a net search for "mount sshfs windows", you will probably find
some 3rd-party tools.

Best regards,
--
Willem Bogaerts

Application smith
Kratz B.V.
http://www.kratz.nl/
Nov 14 '08 #8
Ivn Snchez Ortega escribi:
"Álvaro G. Vicario" wrote:
>The only hassle is that I need to open my repositories to the outer
world.

As long as you're configuring apache properly, you'll open *only* the
subdirectories you want, not the enrite SVN tree.

Or am I missing something there?
What I meant is that, currently, all my repositories are limited to the
local network (or even with no network at all). To access them from the
internet I'd need to forward a port in the router and double-check
Apache configuration. Which is doable, but not done. If you're to allow
outsiders into your room you need to make sure your drawers are properly
locked.

--
-- http://alvaro.es - lvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programacin web: http://bits.demogracia.com
-- Mi web de humor al bao Mara: http://www.demogracia.com
--
Nov 14 '08 #9
"Álvaro G. Vicario" wrote:
What I meant is that, currently, all my repositories are limited to the
local network (or even with no network at all). To access them from the
internet I'd need to forward a port in the router and double-check
Apache configuration. Which is doable, but not done.
You could use either port-based virtualhosts, or .htaccess and an IP filter.

--
----------------------------------
Iván Sánchez Ortega -ivan-algarroba-sanchezortega-punto-es-

XML is like violence. If it doesn't solve the problem, use more.
-- Fjolnir, on Slashdot
Nov 14 '08 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Arthur Chereau | last post by:
Hi, I'm trying to setup viewcvs to work with subversion 1.2.0 on Linux with Python 2.4.1. The last viewcvs (from CVS) needs subversion python bindings. I installed swig and built subversion from...
2
by: msnews.microsoft.com | last post by:
I'm looking for a one-step publish to server solution. I'm developing my web app in VS.NET and use my local IIS for testing. When ready to publish the latest release, I'd like to be able to hit...
8
by: Graham | last post by:
I noticed a similar post awhile ago and in terms of my problem it wasnt a suitable answer so I will ask again. I have VS2005 running a on development machine in my office where I do all my...
9
by: Alex Greenberg | last post by:
I don't know, but I find the Publish Web Site feature very lacking and weak. I mean, why does the damn thing have to delete unrelated directories like /images /documents etc. This is so...
2
by: genc_ymeri | last post by:
Hi over there, I suddenly started to get the below error when I try to publish my websites, in any of them ! I tried to google it but not much info. Any help very much appreciated, thanks...
3
by: =?Utf-8?B?UGFvbG8gTmljY29sw7IgR2l1YmVsbGkgW0F4ZXR0 | last post by:
I have a website with a public folder (users can upload images into it) so I'm wondering if it's possible to avoid the deletion of this folder when I re-publish the website from visual studio. Do I...
19
by: nyhetsgrupper | last post by:
Hi, Which project type do you prefer? Is the web site or web application project the best solution? The application I am about to write is completly new so migrating from vs 2003 is not an issue,...
9
by: Jason | last post by:
Hi all, I am no longer able to publish a web site project using Visual Studio 2005 Professional. I am publishing it to an FTP url, and this used to work just fine. I enter the username and...
0
by: Tim Royal | last post by:
Hey there. I've searched the web to find a solution to this problem, but couldn't find anybody else experiencing it. I'm using Visual Studio 2008, and have several projects for customers that I...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.