[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [subversive-dev] How does subversive stop .svn folders from being copied by the Java Builder?

Hi,

Thank you once again. I've made the bug report for the issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=361831

Best regards,
Alexander Gurov.

24.10.2011 19:24, Kris De Volder ÐÐÑÐÑ:
Hi Alexander,

Thanks for your response. To try to answer your question...

I don't know if it *only* happens on initial import. But it definitely happens on initial import. It also seems that once the project is put into this bad state of having the .svn folders copied to the output folder, other problems happen and it is hard to repair this broken state.

It seems that on successive rebuilds, even after .svn folder have been marked team private the problem will persist (i.e. the .svn folders stick around in the output folder on successive rebuild and seem to resist removal).

I have not really investigated why the broken state is hard to repair in this way. One method that seems to work, is to delete the output folders entirely from the file system (i.e. go to OS shell and delete them), and then refresh and rebuild the workspace. After this the folders are permanently gone.

Though I'm not 100% sure of this, I would guess that fixing the initial checkout issue will not put the project in a broken state in the first place and the later problems will thereby also be avoided.

Kris

----- Original Message -----
Hello Kris,

Firstly - thank you for pointing the issue. And there is a question:
is
the only time the problem happens is on the initial import of a
shared
project into a workspace? If so, then it definitely is the problem.
If
it happens on other conditions too then there could be another issue
I
should search for.

Best regards,
Alexander Gurov.

22.10.2011 3:35, Kris De Volder ÐÐÑÐÑ:
Hmmm... it is starting to look more and more like a subversive bug
to me. But I will leave the final judgment of that to you guys
(i.e. subversive devs).

Here's what I learned:

1) org.eclipse.team.svn.core.SVNFolderListener is the guy who makes
.svn folders team private.

2) this is installed as a workspace change listener by
     org.eclipse.team.svn.core.SVNTeamPlugin
     at line 169.

     Here it registers to receive 'PRE_BUILD' events. I gather this
     is with intention to make sure those
     .svn folders are indeed made 'team private' before the Java
     builder executes.

     So that seems cool.

3)  But... it seems that the SVNFolderListener *schedules* the work
to be done rather than actually doing the work.

      This happens at line: 115 in SVNFolderListener.

      The end result is that the work *actually* only happens after
      the JavaBuilder already copied the .svn folders
      to the output folder. This is too late, because the damage is
      already done.

4) Finally,

     The SVNFolderListener is then causing all the copied .svn
     folders inside the project's output folders to
     also be marked 'team private'. Not sure what the effect of that
     might be, but I think it is almost certainly bad,
     and could be the reason why the Java builder is not removing
     them from the output folders on successive builds.

Any thoughts?

Kris

----- Original Message -----
OK, I think I made some headway, at least in figuring out how its
supposed to
be done.

Found this info:

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fteam.htm

I recon that must be the mechanism subversive team provider is
using
to mark .svn
folders as 'do not copy' for the Java builder.

If that's the case, now all I need to figure out is why subversive
isn't doing this *before* the Java builder already copied some of
the .svn folders to the output folder.

Kris

----- Original Message -----
Hi all,

Hopefully this is the right place for my question, because I've
been
banging my head against a problem which may be a subversive bug,
or
it may (more likely :-) be something stupid that I myself did in
an
import wizard I implemented for the Gradle STS tooling.

See here for some background:

https://issuetracker.springsource.com/browse/STS-2173

Trying to get to the bottom of this yesterday, I spent quite a
bit
of
time not really getting anywhere.

What I need to know to make some headway debugging this, is how
does
subversive stop the Java builder from copying .svn folders into
the
output folder? I know there's some mechanism in place that does
this, and normally it does work, just in the bug reported above,
it
sometimes doesn't and I can't figure out why not. I'm somewhat
hampered by the fact that I don't know where to look for this
mechanism.

If someone could point me to the right place in the subversive
code
base that implements this filtering mechanism I can spend some
more
time with the debugger to try to get to the bottom of it.

Any help much appreciated.

Cheers,

Kris
_______________________________________________
subversive-dev mailing list
subversive-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/subversive-dev

_______________________________________________
subversive-dev mailing list
subversive-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/subversive-dev

_______________________________________________
subversive-dev mailing list
subversive-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/subversive-dev
_______________________________________________
subversive-dev mailing list
subversive-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/subversive-dev

_______________________________________________
subversive-dev mailing list
subversive-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/subversive-dev