You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Andrey Repin <an...@freemail.ru> on 2009/04/02 16:09:16 UTC

Re[2]: Want to set up SVN for a web app

Greetings, Theodore H . Smith!

Thanks, Theodore.
You pretty much did what I was about to do myself.
But I'm a step ahead of you, so let me explain what I've done so far, and
where am I now, and what I need. My steps will be in random, but consequent
order, without a division to SVN-specific, SVN-related and completely
unrelated, but necessary steps.

First, I've created a test environment, which is also to be my working place.
Apache, PHP and MySQL bound in the same way as it is on production host, if
possible (AND AFFORDABLE!!!) - with the same database layout and passwords.
Make sure you have .svn and CVS directories masked out of direct access.
for Apache, it is done by specifying

RewriteEngine On
RewriteRule "(.+/)?(\.svn|CVS)/" "/" [F,L]

In either .htaccess file or VirtualHost configuration.


Second, i've created a directory structure suitable for future project.
On my local drive, independent from the test environment.
It is a protorype of the production server /home/<username> directory, with
only necessary entries in it, like:
~/lib - necessary 3rd-party libraries
~/inc - my own includes, hooks and hacks
~/data - the project server-side codebase
~/cgi-bin - if you're using CGI scripts in your webserver, you might be need
    to include some of them under version control.
~/htdocs - actual site directory, visible from the web. It contains static
pages, graphics, JavaScript codebase.
Filled that structure with what I have already. Let's assume I have static
website of couple of HTML pages with images and tiny bit of JScript.

Third, i've imported it all to SVN. Easy.
cd temp/protofolder
svn import http://svn.mydomain.local/repos/mynewproject

Adding         htdocs
Adding         htdocs\classtrees_Structures_Graph.html
Adding         htdocs\errors.html
Adding         htdocs\media
Adding         htdocs\media\stylesheet.css
Adding         htdocs\media\banner.css
Adding         htdocs\packages.html
Adding         htdocs\elementindex.html
Adding         htdocs\Structures_Graph
Adding         htdocs\Structures_Graph\_Structures_Graph_Manipulator_AcyclicTest_php.html
Adding         htdocs\Structures_Graph\_Structures_Graph_Node_php.html
Adding         htdocs\Structures_Graph\_Structures_Graph_Manipulator_TopologicalSorter_php.html
Adding         htdocs\Structures_Graph\Structures_Graph.html
Adding         htdocs\Structures_Graph\Structures_Graph_Manipulator_AcyclicTest.html
Adding         htdocs\Structures_Graph\tutorial_Structures_Graph.pkg.html
Adding         htdocs\Structures_Graph\Structures_Graph_Node.html
Adding         htdocs\Structures_Graph\Structures_Graph_Manipulator_TopologicalSorter.html
Adding         htdocs\Structures_Graph\_Structures_Graph_php.html
Adding         htdocs\todolist.html
Adding         htdocs\elementindex_Structures_Graph.html
Adding         htdocs\index.html
Adding         htdocs\li_Structures_Graph.html
Adding         lib
Adding         data
Adding         inc

Committed revision 1.


Fourth step is quite simple. Go to your test environment and checkout your new
repository.
I suppose you have some of these files already in place, because you were
checking if your environment are working properly, so we use --force switch.
svn co --force http://svn.mydomain.local/repos/mynewproject /path/to/test/environment

Now, you start working in your test environment, can see your changes
instantly, and do whatever you need to do with it.
After your task is done, you committing changes to repository. As usual.

Fifth step is to make these changes available to public.
Here is the problem.
1. Making public server another (readonly) working copy... not wise. It
increase filesystem load, and if it is a shared server, it would cost you
additional money to extend the disk space to necessary size.
2. Continuous export's of the whole directory tree... not wise. Projects tend
to grow in size, and every export, even if only few files were changed, would
take alot of time and bandwidth.

My problem so far, and what I can't find out myself.
If there's a way to determine, which files in a repository has been changed
since revision REV, and how to tell export to only pull these changed files?

export does not take the --tergets switch, and I can't find out, how to alter
the built-in diff command output. It's hard to read for me at first and not
doing what I need (in this specific case) at last.

Suggestions? Alternate ways?


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 02.04.2009, <19:40>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1520745

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Re[2]: Want to set up SVN for a web app

Posted by "Theodore H. Smith" <de...@elfdata.com>.
Perhaps this will help you?

http://www.google.com/search?client=safari&rls=en-us&q=post-commit&ie=UTF-8&oe=UTF-8

I think you can put a shell script in the repository folder, that can  
just do a "svn update" to the live version!

>
> My problem so far, and what I can't find out myself.
> If there's a way to determine, which files in a repository has been  
> changed
> since revision REV, and how to tell export to only pull these  
> changed files?
>
> export does not take the --tergets switch, and I can't find out, how  
> to alter
> the built-in diff command output. It's hard to read for me at first  
> and not
> doing what I need (in this specific case) at last.
>
> Suggestions? Alternate ways?
>
>
> --
> WBR,
> Andrey Repin (anrdaemon@freemail.ru) 02.04.2009, <19:40>
>
> Sorry for my terrible english...
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1520745
>
> To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org 
> ].

--
http://elfdata.com/plugin/
"String processing, done right"

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1521530

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Andrey Repin!

Oh, hi! /sorry, necessary joke. I feel a bit embarrassed talking that much to
myself.

*****************************************************************************
********************************* WARNING ***********************************

This script is NOT ready-to use, nor it is recommended to use in it's current
state.
At the very least, it lack even most basic sanity checks.
Thus only what it could REALLY do is to retrieve latest revision number and
place it to the ~/latest file.
And, however, print out suggested commands which it's supposed to do to update
your project from known "latest" revision to current HEAD of a given branch.
A word about deleted objects. I could, however, include "rm -rf" in script,
but I better won't. Even commented, it's always leaving as potential for bad
happenings. Better don't do that, so I just leave a note for removed objects.

********************************* WARNING ***********************************
*****************************************************************************

Step five:

Quoting the svnexport.sh:
> #! /bin/sh
> echo "#! /bin/sh" > ~/tmp/export.sh
> svn diff --summarize -r `cat ~/latest`:HEAD $1 | sed -E \
>   -e "s#^[AM].......?($1)(/*(.*))#echo svn export --force --quiet \1\2 \3#" \
>   -e "s#^D.......?$1/*(.*)#echo Removed object: \1#" >> ~/tmp/export.sh
> chmod +x ~/tmp/export.sh
> ~/tmp/export.sh
> rm ~/tmp/export.sh
> svn info $1 | grep "^Revision:" | sed -E "s#^Revision:[[:space:]]+([[:digit:]]+)#\1#" > ~/latest

Two issues I ran in with this script.
1. Difference with sed switches, -r against -E on different platforms.
2. Multiple SVN authorization requests if you have store-passwords = no
Would be handy if SVN could take approach of CVS and sudo and cache entered
password for some time.

Suggestions for script:
0. Add proof-checking for various parameters and execution results.
1. Take SVN path from file or hardcode it in script. Reduce level of mistypes.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 07.04.2009, <22:40>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1582002

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Les Mikesell <le...@gmail.com>.
Andrey Repin wrote:
> > 
> Fifth step is to make these changes available to public.
> Here is the problem.
> 1. Making public server another (readonly) working copy... not wise. It
> increase filesystem load, and if it is a shared server, it would cost you
> additional money to extend the disk space to necessary size.
> 2. Continuous export's of the whole directory tree... not wise. Projects tend
> to grow in size, and every export, even if only few files were changed, would
> take alot of time and bandwidth.
> 
> My problem so far, and what I can't find out myself.
> If there's a way to determine, which files in a repository has been changed
> since revision REV, and how to tell export to only pull these changed files?
> 
> export does not take the --tergets switch, and I can't find out, how to alter
> the built-in diff command output. It's hard to read for me at first and not
> doing what I need (in this specific case) at last.
> 
> Suggestions? Alternate ways?

One approach is to use a working copy as a staging location. Do an 
update to the revision or switch to the tag that you want to push to 
production, then use rsync or something similar to update the production 
  machine(s) to match the staging copy.  Rsync will only copy the 
changed parts and will copy under a temporary file name, renaming only 
when complete, and the -C option will make it skip the .svn metadata as 
well as cvs.

-- 
   Les Mikesell
     lesmikesell@gmail.com

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1521456

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Les Mikesell <le...@gmail.com>.
Andrey Repin wrote:
> Greetings, Theodore H . Smith!
> 
> Thanks, Theodore.
> You pretty much did what I was about to do myself.
> But I'm a step ahead of you, so let me explain what I've done so far, and
> where am I now, and what I need. My steps will be in random, but consequent
> order, without a division to SVN-specific, SVN-related and completely
> unrelated, but necessary steps.
> 
> First, I've created a test environment, which is also to be my working place.
> Apache, PHP and MySQL bound in the same way as it is on production host, if
> possible (AND AFFORDABLE!!!) - with the same database layout and passwords.
> Make sure you have .svn and CVS directories masked out of direct access.
> for Apache, it is done by specifying
> 
> RewriteEngine On
> RewriteRule "(.+/)?(\.svn|CVS)/" "/" [F,L]
> 
> In either .htaccess file or VirtualHost configuration.
> 
> 
> Second, i've created a directory structure suitable for future project.
> On my local drive, independent from the test environment.
> It is a protorype of the production server /home/<username> directory, with
> only necessary entries in it, like:
> ~/lib - necessary 3rd-party libraries
> ~/inc - my own includes, hooks and hacks
> ~/data - the project server-side codebase
> ~/cgi-bin - if you're using CGI scripts in your webserver, you might be need
>     to include some of them under version control.
> ~/htdocs - actual site directory, visible from the web. It contains static
> pages, graphics, JavaScript codebase.
> Filled that structure with what I have already. Let's assume I have static
> website of couple of HTML pages with images and tiny bit of JScript.
> 
> Third, i've imported it all to SVN. Easy.
> cd temp/protofolder
> svn import http://svn.mydomain.local/repos/mynewproject
> 
> Adding         htdocs
> Adding         htdocs\classtrees_Structures_Graph.html
> Adding         htdocs\errors.html
> Adding         htdocs\media
> Adding         htdocs\media\stylesheet.css
> Adding         htdocs\media\banner.css
> Adding         htdocs\packages.html
> Adding         htdocs\elementindex.html
> Adding         htdocs\Structures_Graph
> Adding         htdocs\Structures_Graph\_Structures_Graph_Manipulator_AcyclicTest_php.html
> Adding         htdocs\Structures_Graph\_Structures_Graph_Node_php.html
> Adding         htdocs\Structures_Graph\_Structures_Graph_Manipulator_TopologicalSorter_php.html
> Adding         htdocs\Structures_Graph\Structures_Graph.html
> Adding         htdocs\Structures_Graph\Structures_Graph_Manipulator_AcyclicTest.html
> Adding         htdocs\Structures_Graph\tutorial_Structures_Graph.pkg.html
> Adding         htdocs\Structures_Graph\Structures_Graph_Node.html
> Adding         htdocs\Structures_Graph\Structures_Graph_Manipulator_TopologicalSorter.html
> Adding         htdocs\Structures_Graph\_Structures_Graph_php.html
> Adding         htdocs\todolist.html
> Adding         htdocs\elementindex_Structures_Graph.html
> Adding         htdocs\index.html
> Adding         htdocs\li_Structures_Graph.html
> Adding         lib
> Adding         data
> Adding         inc
> 
> Committed revision 1.
> 
> 
> Fourth step is quite simple. Go to your test environment and checkout your new
> repository.
> I suppose you have some of these files already in place, because you were
> checking if your environment are working properly, so we use --force switch.
> svn co --force http://svn.mydomain.local/repos/mynewproject /path/to/test/environment
> 
> Now, you start working in your test environment, can see your changes
> instantly, and do whatever you need to do with it.
> After your task is done, you committing changes to repository. As usual.
> 
> Fifth step is to make these changes available to public.
> Here is the problem.
> 1. Making public server another (readonly) working copy... not wise. It
> increase filesystem load, and if it is a shared server, it would cost you
> additional money to extend the disk space to necessary size.
> 2. Continuous export's of the whole directory tree... not wise. Projects tend
> to grow in size, and every export, even if only few files were changed, would
> take alot of time and bandwidth.
> 
> My problem so far, and what I can't find out myself.
> If there's a way to determine, which files in a repository has been changed
> since revision REV, and how to tell export to only pull these changed files?
> 
> export does not take the --tergets switch, and I can't find out, how to alter
> the built-in diff command output. It's hard to read for me at first and not
> doing what I need (in this specific case) at last.
> 
> Suggestions? Alternate ways?


One approach is to use a working copy as a staging location. Do an 
update to the revision or switch to the tag that you want to push to 
production, then use rsync or something similar to update the production 
  machine(s) to match the staging copy.  Rsync will only copy the 
changed parts and will copy under a temporary file name, renaming only 
when complete, and the -C option will make it skip the .svn metadata as 
well as cvs.

-- 
   Les Mikesell
     lesmikesell@gmail.com

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1521491

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Les Mikesell <le...@gmail.com>.
Bob Archer wrote:
>> Fifth step is to make these changes available to public.
>> Here is the problem.
>> 1. Making public server another (readonly) working copy... not wise.
> It
>> 2. Continuous export's of the whole directory tree... not wise.
> Projects
> 
> What about:
> 
> 3. rsync (or ant or...) from your build server or other workstation that
> does have a working copy. This should be set up to exclude the .svn
> files and any .template type files you might use.

Just be careful to think about 'which' working copy you use.  One of the 
nice things about version control systems is that they can permit 
concurrent operations with older and newer revisions at the same time. 
You may want a separate working copy just for this purpose so it can be 
pointed at specific tested/approved revisions or tags at the same time 
ongoing work is being added and tested in other areas.

-- 
   Les Mikesell
    lesmikesell@gmail.com

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1521536

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re[6]: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Bob Archer!

>> Really, do you think I would expose my working machine to the world?
>> Even my test server firewalled to the teeth. Working host even deeper
>> inside
>> my own LAN, only accessible from dark and scary tunnel in server. With
>> toothy dog laid on the other end of it.

BA> Um, no! I was thinking more of a PUSH system from the staging or build
BA> server to the production server rather than a PULL from the production
BA> server. Personally, I prefer not to have my production system be a
BA> working copy.

BA> But, if that's the way you want to go, I can't stop you.

No, that was my initial idea - to avoid turning the production server into a
working copy, but maintain ability to request new version from the server
side. (With CVS, it wasn't an issue - CVS storing little to no information in
service area)

I think i will take a simple approach of nightly builds.
Thanks for your input.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 02.04.2009, <22:24>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1522458

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

RE: Re[4]: Want to set up SVN for a web app

Posted by Bob Archer <bo...@amsi.com>.
> Really, do you think I would expose my working machine to the world?
> Even my test server firewalled to the teeth. Working host even deeper
> inside
> my own LAN, only accessible from dark and scary tunnel in server. With
> toothy dog laid on the other end of it.

Um, no! I was thinking more of a PUSH system from the staging or build
server to the production server rather than a PULL from the production
server. Personally, I prefer not to have my production system be a
working copy.

But, if that's the way you want to go, I can't stop you.

BOb

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1522221

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].


Re: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Ryan Schmidt!

> True, "changed" is not an option of the "svn" program, but there are
> two other ways you can learn what paths were changed by a revision:

> svn log -q -v -r 123

> svn diff --summarize -c 123

Thanks much.
Latter one is almost exactly what I need, because I want ability to examine
range of revisions in one step.
Little bit of scripting need around it... that's my work, indeed. Thanks
again.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 07.04.2009, <15:51>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1578052

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Apr 3, 2009, at 05:40, Andrey Repin wrote:

> Greetings, Ryan Schmidt!
>
>>> I just found out that svnlook doing exactly what I need, but, damn,
>>> it's only
>>> administrative tool... gonna take some research and build some
>>> distribution
>>> scripts then... wish I could have similar tool working with
>>> repository through
>>> any of the supported SVN protocols...
>
>> Sorry, I'm getting confused... what feature is it that you found in
>> svnlook but not in svn?
>
>
> [C:\]$svnlook help changed
> changed: usage: svnlook changed REPOS_PATH
>
> Print the paths that were changed.
>
> Valid options:
>   -r [--revision] ARG      : specify revision number ARG
>   -t [--transaction] ARG   : specify transaction name ARG
>   --copy-info              : show details for copies

True, "changed" is not an option of the "svn" program, but there are  
two other ways you can learn what paths were changed by a revision:

svn log -q -v -r 123

svn diff --summarize -c 123

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1560084

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Ryan Schmidt!

>> I just found out that svnlook doing exactly what I need, but, damn,
>> it's only
>> administrative tool... gonna take some research and build some  
>> distribution
>> scripts then... wish I could have similar tool working with  
>> repository through
>> any of the supported SVN protocols...

RS> Sorry, I'm getting confused... what feature is it that you found in  
RS> svnlook but not in svn?

[C:\]$svnlook help changed
changed: usage: svnlook changed REPOS_PATH

Print the paths that were changed.

Valid options:
  -r [--revision] ARG      : specify revision number ARG
  -t [--transaction] ARG   : specify transaction name ARG
  --copy-info              : show details for copies


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 03.04.2009, <14:38>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1531079

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Re[2]: Want to set up SVN for a web app

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Apr 2, 2009, at 13:17, Andrey Repin wrote:

> I just found out that svnlook doing exactly what I need, but, damn,  
> it's only
> administrative tool... gonna take some research and build some  
> distribution
> scripts then... wish I could have similar tool working with  
> repository through
> any of the supported SVN protocols...

Sorry, I'm getting confused... what feature is it that you found in  
svnlook but not in svn?

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1527770

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Ryan Schmidt!

> I wasn't sure what you meant by "it must", but if you were trying to
> suggest that the mail list software should be changing the Reply-To  
> header, then that is not what is desired by this project, as  
> explained here:

> http://subversion.tigris.org/mailing-lists.html#reply-to

Point taken.

> The way your mail reader uses square brackets in the "Re" part of the
> Subject line is a bit of a joke ("Re[2]:"), and my mail reader  
> (Apple's Mail.app) doesn't get it and doesn't display the threading  
> properly making it very hard to follow threads you've participated  
> in. I would sure appreciate it if you would just prefix replies with  
> "Re:" as per usual.

Why you aren't linking threads by References: header?
I can change subject line to anything, however. I'm not bound to any defaults.
See. It fixed now.

> Your quoting style, with initials preceding the angle bracket, is  
> also unusual to me, and to Mail.app, which then doesn't apply the  
> beautiful colored quoting that is so helpful in quickly identifying  
> who said what block of text. So if possible, please stop doing that  
> as well.

Of course it is possible. Although useful in determining, who you are quoting.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 03.04.2009, <14:47>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1531108

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Re[2]: Want to set up SVN for a web app

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Apr 2, 2009, at 13:50, Andrey Repin wrote:

>>> LM> And by the way - your 'Reply-To: email setting makes it  
>>> difficult to
>>> LM> respond back to the list.
>>>
>>> My Reply-To set to reply back to the list, since list software  
>>> does not do
>>> that on itself (it must).

I wasn't sure what you meant by "it must", but if you were trying to  
suggest that the mail list software should be changing the Reply-To  
header, then that is not what is desired by this project, as  
explained here:

http://subversion.tigris.org/mailing-lists.html#reply-to

>>> This way, I can't be disturbed by unintended private messages,  
>>> regular "reply"
>>> will go to the list. If you want to reply to me personally, copy  
>>> my message to
>>> personal folder and issue a "Reply to author" command.
>
> LM> Sorry, false alarm.  Thunderbird only shows your name in the  
> reply-to:
> LM> and the reply even with "reply all" but it does have the list  
> address in
> LM> the hidden part.
>
> That's why The Bat! is a Mail client and everything else is a joke :P

The way your mail reader uses square brackets in the "Re" part of the  
Subject line is a bit of a joke ("Re[2]:"), and my mail reader  
(Apple's Mail.app) doesn't get it and doesn't display the threading  
properly making it very hard to follow threads you've participated  
in. I would sure appreciate it if you would just prefix replies with  
"Re:" as per usual.

Your quoting style, with initials preceding the angle bracket, is  
also unusual to me, and to Mail.app, which then doesn't apply the  
beautiful colored quoting that is so helpful in quickly identifying  
who said what block of text. So if possible, please stop doing that  
as well.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1527873

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re[2]: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Les Mikesell!

>> LM> Rsync is typically used over ssh - with the command issued from the
>> LM> private/firewalled side.   If you can connect to the server via ssh 
>> LM> (perhaps even needing to establish a vpn first), rsync is a suitable 
>> LM> mechanism to send files there.
>> 
>> I just found out that svnlook doing exactly what I need, but, damn, it's only
>> administrative tool... gonna take some research and build some distribution
>> scripts then... wish I could have similar tool working with repository through
>> any of the supported SVN protocols...

LM> Most people don't want something pushed to production just because it 
LM> shows up as a change in the repository.  Normally you would have tested 
LM> a specific revision or tag copy, then you would run a script that 
LM> updates a staging location with that revision/tag and pushes copies of 
LM> that everywhere you want them.  I think someone has posted here about 
LM> using a commit hook that would watch for tags with a certain pattern in 
LM> the names, so all you had to do from a client was copy to a tag with 
LM> that pattern in the name to trigger the push to production.  You can run 
LM> svnlook in the commit hooks, so you might also use that to trigger extra 
LM> operations on the server side.

Yep, that all was part my original idea. :) As I said, I've read the svnbook
quite alot. Not to the level of storing it in my brain, but enough to know the
general features available and common patterns of usage... plus my past
experience with CVS.
Still, need research... will post back if I find out something useful, sure.

>> LM> And by the way - your 'Reply-To: email setting makes it difficult to 
>> LM> respond back to the list.
>> 
>> My Reply-To set to reply back to the list, since list software does not do
>> that on itself (it must).
>> This way, I can't be disturbed by unintended private messages, regular "reply"
>> will go to the list. If you want to reply to me personally, copy my message to
>> personal folder and issue a "Reply to author" command.

LM> Sorry, false alarm.  Thunderbird only shows your name in the reply-to: 
LM> and the reply even with "reply all" but it does have the list address in 
LM> the hidden part.

That's why The Bat! is a Mail client and everything else is a joke :P


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 02.04.2009, <22:46>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1522862

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Les Mikesell <le...@gmail.com>.
Andrey Repin wrote:
>
> LM> Rsync is typically used over ssh - with the command issued from the 
> LM> private/firewalled side.   If you can connect to the server via ssh 
> LM> (perhaps even needing to establish a vpn first), rsync is a suitable 
> LM> mechanism to send files there.
> 
> I just found out that svnlook doing exactly what I need, but, damn, it's only
> administrative tool... gonna take some research and build some distribution
> scripts then... wish I could have similar tool working with repository through
> any of the supported SVN protocols...

Most people don't want something pushed to production just because it 
shows up as a change in the repository.  Normally you would have tested 
a specific revision or tag copy, then you would run a script that 
updates a staging location with that revision/tag and pushes copies of 
that everywhere you want them.  I think someone has posted here about 
using a commit hook that would watch for tags with a certain pattern in 
the names, so all you had to do from a client was copy to a tag with 
that pattern in the name to trigger the push to production.  You can run 
svnlook in the commit hooks, so you might also use that to trigger extra 
operations on the server side.

> LM> And by the way - your 'Reply-To: email setting makes it difficult to 
> LM> respond back to the list.
> 
> My Reply-To set to reply back to the list, since list software does not do
> that on itself (it must).
> This way, I can't be disturbed by unintended private messages, regular "reply"
> will go to the list. If you want to reply to me personally, copy my message to
> personal folder and issue a "Reply to author" command.

Sorry, false alarm.  Thunderbird only shows your name in the reply-to: 
and the reply even with "reply all" but it does have the list address in 
the hidden part.

-- 
   Les Mikesell
    lesmikesell@gmail.com

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1522578

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re[2]: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Les Mikesell!

>>>> Fifth step is to make these changes available to public.
>>>> Here is the problem.
>>>> 1. Making public server another (readonly) working copy... not wise.
>> BA> It
>>>> 2. Continuous export's of the whole directory tree... not wise.
>> BA> Projects
>> 
>> BA> What about:
>> 
>> BA> 3. rsync (or ant or...) from your build server or other workstation that
>> BA> does have a working copy. This should be set up to exclude the .svn
>> BA> files and any .template type files you might use.
>> 
>> My working copy not accessible from the world :) And I need purely production
>> server side solution, so I could just connect to it from anywhere and issue an
>> updating command. However, this "anywhere" more often will be my home machine,
>> but what about these unpredictable situations, where you loosing your server
>> files (all or part of them) and need to get it back up and running as fast as
>> possible?

LM> Rsync is typically used over ssh - with the command issued from the 
LM> private/firewalled side.   If you can connect to the server via ssh 
LM> (perhaps even needing to establish a vpn first), rsync is a suitable 
LM> mechanism to send files there.

I just found out that svnlook doing exactly what I need, but, damn, it's only
administrative tool... gonna take some research and build some distribution
scripts then... wish I could have similar tool working with repository through
any of the supported SVN protocols...

LM> And by the way - your 'Reply-To: email setting makes it difficult to 
LM> respond back to the list.

My Reply-To set to reply back to the list, since list software does not do
that on itself (it must).
This way, I can't be disturbed by unintended private messages, regular "reply"
will go to the list. If you want to reply to me personally, copy my message to
personal folder and issue a "Reply to author" command.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 02.04.2009, <22:11>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1522294

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Want to set up SVN for a web app

Posted by Les Mikesell <le...@gmail.com>.
Andrey Repin wrote:
> Greetings, Bob Archer!
> 
>>> Fifth step is to make these changes available to public.
>>> Here is the problem.
>>> 1. Making public server another (readonly) working copy... not wise.
> BA> It
>>> 2. Continuous export's of the whole directory tree... not wise.
> BA> Projects
> 
> BA> What about:
> 
> BA> 3. rsync (or ant or...) from your build server or other workstation that
> BA> does have a working copy. This should be set up to exclude the .svn
> BA> files and any .template type files you might use.
> 
> My working copy not accessible from the world :) And I need purely production
> server side solution, so I could just connect to it from anywhere and issue an
> updating command. However, this "anywhere" more often will be my home machine,
> but what about these unpredictable situations, where you loosing your server
> files (all or part of them) and need to get it back up and running as fast as
> possible?
> Really, do you think I would expose my working machine to the world?
> Even my test server firewalled to the teeth. Working host even deeper inside
> my own LAN, only accessible from dark and scary tunnel in server. With
> toothy dog laid on the other end of it.

Rsync is typically used over ssh - with the command issued from the 
private/firewalled side.   If you can connect to the server via ssh 
(perhaps even needing to establish a vpn first), rsync is a suitable 
mechanism to send files there.

And by the way - your 'Reply-To: email setting makes it difficult to 
respond back to the list.

-- 
   Les Mikesell
    lesmikesell@gmail.com

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1522135

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re[4]: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Bob Archer!

>> Fifth step is to make these changes available to public.
>> Here is the problem.
>> 1. Making public server another (readonly) working copy... not wise.
BA> It
>> 2. Continuous export's of the whole directory tree... not wise.
BA> Projects

BA> What about:

BA> 3. rsync (or ant or...) from your build server or other workstation that
BA> does have a working copy. This should be set up to exclude the .svn
BA> files and any .template type files you might use.

My working copy not accessible from the world :) And I need purely production
server side solution, so I could just connect to it from anywhere and issue an
updating command. However, this "anywhere" more often will be my home machine,
but what about these unpredictable situations, where you loosing your server
files (all or part of them) and need to get it back up and running as fast as
possible?
Really, do you think I would expose my working machine to the world?
Even my test server firewalled to the teeth. Working host even deeper inside
my own LAN, only accessible from dark and scary tunnel in server. With
toothy dog laid on the other end of it.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 02.04.2009, <21:46>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1521906

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

RE: Re[2]: Want to set up SVN for a web app

Posted by Bob Archer <bo...@amsi.com>.
> Fifth step is to make these changes available to public.
> Here is the problem.
> 1. Making public server another (readonly) working copy... not wise.
It
> 2. Continuous export's of the whole directory tree... not wise.
Projects

What about:

3. rsync (or ant or...) from your build server or other workstation that
does have a working copy. This should be set up to exclude the .svn
files and any .template type files you might use.

BOb

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1521313

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].


Re: Want to set up SVN for a web app

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Ryan Schmidt!

>> Make sure you have .svn and CVS directories masked out of direct
>> access.
>> for Apache, it is done by specifying
>>
>> RewriteEngine On
>> RewriteRule "(.+/)?(\.svn|CVS)/" "/" [F,L]
>>
>> In either .htaccess file or VirtualHost configuration.

> Yes, this is a good idea. For comparison, I do it this way, for Apache:

>         RedirectMatch 404 .*/\.svn(/|$)

> Doesn't need mod_rewrite.

Yes, this one probably the most efficient way of doing this.

> Enhance for CVS directories if needed.

> I prefer to make them return 404 Not Found instead of 403 Forbidden.  
> No need to give the world any indication that there's a working copy  
> at all.

:) May be...


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 03.04.2009, <14:50>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1531153

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: Re[2]: Want to set up SVN for a web app

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Apr 2, 2009, at 11:09, Andrey Repin wrote:

> Make sure you have .svn and CVS directories masked out of direct  
> access.
> for Apache, it is done by specifying
>
> RewriteEngine On
> RewriteRule "(.+/)?(\.svn|CVS)/" "/" [F,L]
>
> In either .htaccess file or VirtualHost configuration.

Yes, this is a good idea. For comparison, I do it this way, for Apache:

	RedirectMatch 404 .*/\.svn(/|$)

Doesn't need mod_rewrite.

Enhance for CVS directories if needed.

I prefer to make them return 404 Not Found instead of 403 Forbidden.  
No need to give the world any indication that there's a working copy  
at all.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1527816

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].