Moving/Renaming files with resharper, cuts SVN history of the file

Hey,

I already submitted an issue (TW-13758) about this in TeamCity, 'cause I thought it was teamcity that didn't recognise the move/rename, but it seems to be a resharper issue.

Context:

I'm working in VS2008 with R# 5.1.

--> using Ankh or Visual SVN to connect to the SVN repository.

I've added the TeamCity Professional Version 5.1.2 (build 13430) plugin to enable pretested commits.

But when I use the Refactor > Move function in the solution explorer, that move is not detected by either of the three SVN clients.

--> it is handled as a 'delete/add' which causes the loss of the history

     + teamcity doens't recognise the 'deletes' so I even have to do a 'clean up' commit using Ankh to commit the deletes

Is this a known problem ?

--> or can I configure the tools to make the SVN clients recognise it as an actual move (preserving the history).

I think the same happens when renaming files using R#.

--> it is a normal filesystem rename, while renaming should be done using the SVN client functionality (to preserve the history)

'cause I refactor all the time and encourage the team to do the same, this issue limits me to sell both the tools and the methodology :'(

thx,

Olivier

3 comments
Comment actions Permalink

Hey,

after posting this issue, I got a list of related posts, where I found and old one (about R# 2.0) that was talking about this.

--> conclusion was that it is the SVN clients problem.

I found out that by using the VisualSvn tool, the renaming of a file (as a result of R#.Renaming the class) gets handled correctly.

--> history is preserved.  me happy :-)

But when a file is moved, it still goes wrong:

Resharper.Move result for VisualSvn.jpg

--> Visual SVN detects that the file is 'missing'.  Meaning deleted without telling the SVN client

Resharper.Move result for TeamCity in VisualSVN context.jpg

--> TeamCity doen't care about this, and just allows committing without the missing file.

Resharper.Move result in VisualSVN after Teamcity commit.jpg

The old file was just deleted.  the SVN client has no idea what happened...
--> is this still an issue for the SVN client to handle ?

--> should R# somehow let VCS clients know that a file was moved ?  so that they can resond to it...

--> both TeamCity as VisualSvn seem to have trouble with it.

grz,

Olivier

0
Comment actions Permalink

Hello Olivier,

This is a known problem and certainly ReSharper should move files correctly,
so that svn clients could detect this situation. We're planning to address
this problem in one of the future releases. Thank you!

Andrey Serebryansky
Senior Support Engineer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Hey,

after posting this issue, I got a list of related posts, where I found
and old one (about R# 2.0) that was talking about this. --> conclusion
was that it is the SVN clients problem.

I found out that by using the VisualSvn tool, the renaming of a file
(as a result of R#.Renaming the class) gets handled correctly. -->
history is preserved.  me happy :)

But when a file is moved, it still goes wrong:
Image:Resharper.Move result for VisualSvn.jpg
--> Visual SVN detects that the file is 'missing'.  Meaning deleted
without telling the SVN client
Image:Resharper.Move result for TeamCity in VisualSVN context.jpg
--> TeamCity doen't care about this, and just allows committing
without the missing file.
Image:Resharper.Move result in VisualSVN after Teamcity commit.jpg
The old file was just deleted.  the SVN client has no idea what
happened...
--> is this still an issue for the SVN client to handle ?
--> should R# somehow let VCS clients know that a file was moved ?  so
that they can resond to it...
--> both TeamCity as VisualSvn seem to have trouble with it.
grz,
Olivier
---
Original message URL:
http://devnet.jetbrains.net/message/5276092#5276092



0
Comment actions Permalink

After talking to Teamcity, VisualSvn & Resharper it is confirmed that the only issue is the R#.Move of a file in a dot.net solution kept in an SVN repository.

The people from R# just assigned the issue so I have good hopes that it can be fixed in one of the next releases.

This kind of support is yet another reason to use and promote these tools !

thx Guys,
Olivier

0

Please sign in to leave a comment.