On Mon, Feb 28, 2011 at 11:13, Christopher D Haakinson
<cdhaa...@us.ibm.com> wrote:
>
> I mean that I have a working copy of my project under:
> /svn/hooks
>
> This folder gets automatically updated with svn update on every commit with a 
> post-commit hook
> This folder also is "live", meaning that the files here are in use at all 
> times, so nobody will be using this "working copy" as their development copy, 
> it's just there to receive all the newest changes.

If you're getting conflicts in those files when performing an update,
then someone *is* using that working copy. Otherwise, the changes
would be merged without conflict into that working copy.

> The scenario I want to test and know how to handle is when a file in 
> /svn/hooks gets changed outside of svn and these changes never get commited 
> into svn.
>
> I understand what svn is and is not, but the files I will have inside svn 
> will also be available and writable on a network, so I need to know how to 
> handle files that get changed inside my live working folder outside of svn.

Again, "outside/inside svn" has no meaning (or ambiguous meaning) in
this context - please try to find the correct terminology to use here
to remove this ambiguity. It sounds like your workflow is supposed to
be:

1) Hook developer checks out hook scripts from repository to a local WC
2) Make edits
3) Commit changes to hook script
4) Hook scripts are auto-updated in /svn/hooks via a hook.

Result: Nothing should be in /svn/hooks that isn't in the repository.

What appears to be happening is that someone is editing in /svn/hooks
while at the same time someone else (or maybe the same person) is
editing in their own WC. This can generate a conflict when those
changes are committed from one WC and updated into the other.

Solution: lock people out of making changes to /svn/hooks, except via
that hook script that pulls the updates down. You should not get any
conflicts this way.

Alternate solution: Require people to only make changes in /svn/hooks,
and disallow commits from any other location (which would not be easy,
as the hook script does not know where on the client content is being
committed from - you'd have to do some per-user permissions & only
allowed a specific person/group to commit, and trust them to do the
right thing).

> Also is there a way to change what gets written to a file when this occurs? 
> All my scripts get corrupted because of the >>>>>>> and I'd like to at least 
> put a # in front so that it's a commented line and doesn't affect the 
> execution...

No, part of the point of doing this is to make it *very* obvious that
something needs to be fixed. Even if those lines were commented out,
the content between them would likely break your script, or at least
cause unpredictable/undesired behavior.

> Andy Levy ---02/28/2011 11:02:11 AM---On Mon, Feb 28, 2011 at 10:54, 
> Christopher D Haakinson
>
>
> From:
> Andy Levy <andy.l...@gmail.com>
> To:
> Christopher D Haakinson/Raleigh/IBM@IBMUS
> Cc:
> users@subversion.apache.org
> Date:
> 02/28/2011 11:02 AM
> Subject:
> Re: Help with files changed outside of svn
> ________________________________
>
>
> On Mon, Feb 28, 2011 at 10:54, Christopher D Haakinson
> <cdhaa...@us.ibm.com> wrote:
> > I'm fairly new to svn, and I have things set up and running well.
> >
> > I wanted to test out a scenario where a file controlled by svn gets changed
> > outside of svn inside the working copy, and now I'm lost and can't find much
> > help on what to do.
> >
> > Here's my example: I setup the hooks folder as a svn project. Checked it out
> > onto my windows box and made a small change, then committed the changes.
> > Now I went through my command shell and manually changed a file outside of
> > svn.
> > Then I went back to my windows box and editted the same file with a
> > different change.
>
> Do you mean to say that you edited the same file in multiple working
> copes? There is no "outside" svn as svn isn't a program in which you
> edit files, and you can't edit directly in the repository.
>
> > Now the original file contains: ">>>>>>> .r3" at the bottom
> >
> > Also I have some more files inside my working directory too:
> >
> > pre-revprop-change.tmpl
> > pre-revprop-change.tmpl.mine
> > pre-revprop-change.tmpl.r2
> > pre-revprop-change.tmpl.r3
> >
> >
> > Can someone please explain to me:
> >
> > 1) Why does >>>>>>> get put into the bottom of my files?
> > 2) What are the 3 copies of this file for?
>
> You have generated a merge conflict - you've changed the same line(s)
> of the file in 2 different ways.
>
> > 3) And now how do I get these files merged back into one copy with the
> > changes made inside svn included and the changes made outside svn excluded?
>
> You must now resolve the conflicts. See
> http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.resolve
>
> As I said above, there is no "outside vs. inside svn" - you apparently
> have changes made from 2 different working copies. This is a normal
> situation but Subversion cannot handle this for you automatically -
> YOU must tell Subversion which content is correct.
>
>

Reply via email to