[sip-comm-dev] Help needed with subversion wierdness


#1

I have been trying to bring the netbeans project configuration up to date. Although I have a good version of the file, I have been getting very confused by the way subversion has been processing my commands.

I have spent a lot of time reading the svn manual and faq, but the only way I can detect my problems is to commit what looks like a good change (from my working directory) and then run an update to discover the results are not what I want. I am using linux svn commands most of the time, because you cannot use netbeans to manipulate its own control files.

The behaviour is so wierd that I cannot even be certain I am describing it properly. I need to fix this quickly, but don't know what more to do... can anyone help me, please?

The trunk '.' has an svn:ignore properties list that includes the line "nbproject". I presume this was automatically converted from the .cvsignore file and I take it to mean "ignore the contents of ./nbproject", but perhaps I am wrong?

The trunk SHOULD look like this...

./nbproject/project.xml - user's local file locally modified and NEVER committed.

./ide/nbproject/project.xml - repository template file under svn control.

It seems as if changes to ide/nbproject/ are translated into changes to nbproject/, and vice versa. The best I've been able to do is to have both directories identical, but that is WRONG.

Here's an example...

1. svn propedit svn:ignore nbproject/ (to ignore nbproject/project.xml) fails to commit because nbproject/project.xml exists in the repository.

2. svn delete nbproject/project.xml commits OK.

3. svn update nbproject/project.xml leaves local nbproject/ empty as desired.

4. svn update ide/nbproject/project.xml ought to have no effect, BUT it actually deletes the file! ide/nbproject/project.xml no longer exists in the repository, so it MUST have been removed in error!

Can anyone suggest what I am doing wrong? I don't want to keep going in circles while messing up the repository.

Brian

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#2

Hi Brian!

I tried around a bit and have an idea what's going on. If you copy the whole ide/nbproject directory to ./, you also copy the .svn subdirectory which is contained in it. Therefore svn gets confused, because it thinks that the local nbproject is versioned although the repository doesn't know anything about it. Solution: rm -rf ./nbproject/.svn. The svn:ignore of ./ looks right BTW.

Hope this helps.

Cheers
Michael Koch

···

-----Ursprüngliche Nachricht-----
Von: Brian Burch [mailto:brian@PingToo.com]
Gesendet: Mi 23.04.2008 19:36
An: sipComm developers
Betreff: [sip-comm-dev] Help needed with subversion wierdness

I have been trying to bring the netbeans project configuration up to
date. Although I have a good version of the file, I have been getting
very confused by the way subversion has been processing my commands.

I have spent a lot of time reading the svn manual and faq, but the only
way I can detect my problems is to commit what looks like a good change
(from my working directory) and then run an update to discover the
results are not what I want. I am using linux svn commands most of the
time, because you cannot use netbeans to manipulate its own control files.

The behaviour is so wierd that I cannot even be certain I am describing
it properly. I need to fix this quickly, but don't know what more to
do... can anyone help me, please?

The trunk '.' has an svn:ignore properties list that includes the line
"nbproject". I presume this was automatically converted from the
.cvsignore file and I take it to mean "ignore the contents of
./nbproject", but perhaps I am wrong?

The trunk SHOULD look like this...

./nbproject/project.xml - user's local file locally modified and NEVER
committed.

./ide/nbproject/project.xml - repository template file under svn control.

It seems as if changes to ide/nbproject/ are translated into changes to
nbproject/, and vice versa. The best I've been able to do is to have
both directories identical, but that is WRONG.

Here's an example...

1. svn propedit svn:ignore nbproject/ (to ignore nbproject/project.xml)
fails to commit because nbproject/project.xml exists in the repository.

2. svn delete nbproject/project.xml commits OK.

3. svn update nbproject/project.xml leaves local nbproject/ empty as
desired.

4. svn update ide/nbproject/project.xml ought to have no effect, BUT it
actually deletes the file! ide/nbproject/project.xml no longer exists in
the repository, so it MUST have been removed in error!

Can anyone suggest what I am doing wrong? I don't want to keep going in
circles while messing up the repository.

Brian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#3

Koch Michael wrote:

I tried around a bit and have an idea what's going on. If you copy the whole ide/nbproject directory to ./, you also copy the .svn subdirectory which is contained in it. Therefore svn gets confused, because it thinks that the local nbproject is versioned although the repository doesn't know anything about it. Solution: rm -rf ./nbproject/.svn. The svn:ignore of ./ looks right BTW.

Hope this helps.

Thanks very much for thinking about my problem Michael. I think you are basically correct, but the situation was made even more complicated by:-

a) the original conversion from CVS created an ambiguous root svn:ignore property for "nbproject".

b) somehow a set of files was committed to the SVN repository as ./nbproject/blah. (Obviously the .svn directory is not committed). I will resist the temptation to look at the history! It doesn't matter who did it, because the setup was wrong and anyone could have done it by accident during a (default) recursive commit at the root of the project.

So, thanks to your excellent suggestion, I now have a plan and a new dose of enthusiasm...

0. Make a clean checkout of the project to ensure I have a faithful latest version of the repository.
1. Get rid of the root svn:ignore for nbproject (basically bringing the entire subdir under version control).
2. commit removals of everything in nbproject.
3. commit svn:ignore props on ./nbroject/*.xml and ./nbproject/private/
(to prevent anyone committing their netbeans local config ever again).
4. make another clean checkout - to lose the history from my local ./netbeans/ directory.
5. create a new local ./nbproject/project.xml (not svn copy or directory copy!) and confirm netbeans is happy to open the project.
6. confirm the new local file is not under version control and so will not be recursively committed from a higher level (i.e. will remain purely local as long as no-one does a new svn add).
7. if that was all OK, carefully (!) tidy ./ide/nbproject/ properties.
8. svn add the latest source of ./ide/nbproject/project.xml.
(9. try to remember what I was going to do yesterday before things went crazy!)

Thanks for listening. Wish me luck!

Brian

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#4

Thanks for listening. Wish me luck!

Good luck!

Cheers
Michael Koch


#5

Koch Michael wrote:

Thanks for listening. Wish me luck!

Good luck!

That was a magic wish, Michael! All the changes went smoothly and all my paranoid tests were successful.

I've just updated the wiki to describe the new environment and how to set up a netbeans project safely.

Thanks for being there when I needed help.

Brian

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net