Connecting Tech Pros Worldwide Forums | Help | Site Map

Publish to live site from Subversion

=?windows-1252?Q?=22=C1lvaro_G=2E_Vicario=22?=
Guest
 
Posts: n/a
#1: Nov 13 '08
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
--

Jerry Stuckle
Guest
 
Posts: n/a
#2: Nov 13 '08

re: Publish to live site from Subversion


lvaro G. Vicario wrote:
Quote:
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.
jstucklex@attglobal.net
==================
Evil Otto
Guest
 
Posts: n/a
#3: Nov 13 '08

re: Publish to live site from Subversion


On Nov 13, 6:11*am, "lvaro G. Vicario"
<alvaroNOSPAMTHA...@demogracia.comwrote:
Quote:
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.
Willem Bogaerts
Guest
 
Posts: n/a
#4: Nov 14 '08

re: Publish to live site from Subversion


Ive been using Subversion for a while to maintain the PHP web apps and
Quote:
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/
=?windows-1252?Q?=22=C1lvaro_G=2E_Vicario=22?=
Guest
 
Posts: n/a
#5: Nov 14 '08

re: Publish to live site from Subversion


Willem Bogaerts escribi:
Quote:
Quote:
>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).
Quote:
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
--
=?windows-1252?Q?=22=C1lvaro_G=2E_Vicario=22?=
Guest
 
Posts: n/a
#6: Nov 14 '08

re: Publish to live site from Subversion


Jerry Stuckle escribi:
Quote:
lvaro G. Vicario wrote:
Quote:
>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.
[...]
Quote:
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
--

=?UTF-8?B?SXbDoW4gU8OhbmNoZXogT3J0ZWdh?=
Guest
 
Posts: n/a
#7: Nov 14 '08

re: Publish to live site from Subversion


"Álvaro G. Vicario" wrote:
Quote:
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
Willem Bogaerts
Guest
 
Posts: n/a
#8: Nov 14 '08

re: Publish to live site from Subversion


The only hassle is that I need to open my repositories to the outer
Quote:
world.
You can restrict access to a limited set of known IP addresses.
Quote:
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/
=?windows-1252?Q?=22=C1lvaro_G=2E_Vicario=22?=
Guest
 
Posts: n/a
#9: Nov 14 '08

re: Publish to live site from Subversion


Ivn Snchez Ortega escribi:
Quote:
"Álvaro G. Vicario" wrote:
Quote:
>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
--
=?UTF-8?B?SXbDoW4gU8OhbmNoZXogT3J0ZWdh?=
Guest
 
Posts: n/a
#10: Nov 14 '08

re: Publish to live site from Subversion


"Álvaro G. Vicario" wrote:
Quote:
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
Closed Thread