neo618 / tortoisesvn

Automatically exported from code.google.com/p/tortoisesvn
0 stars 0 forks source link

Extensions to Cleanup #65

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Feature Proposal
================

Name
----

Extensions to Cleanup

Purpose
-------

Allow the user to clean up a working copy beyond
what the functionality currently provides (i.e.
repair only).

These extensions will also be helpful for the
bisection feature.

Functional Details
------------------

A new dialog is introduced for the "cleanup" command. 
Since this is not a frequently used function, the
extra clicks won't impair the user experience. 
This dialog contains the following checkboxes:

[X] Clear up working copy status
[ ] Revert all changes
[ ] Delete ignored files and folders
[ ] Delete other files and folders
[ ] Unversion working copy

[OK] [Cancel]

With the new working copy code in 1.7, the last 
operation may not be feasible. Omit it in that case.

The defaults are as shown above and cannot be changed
(i.e. we shouldn't add a "set as default" button
because these are very destructive operations that
may undo the results of hours of work).

All selected operations are executed one after
another in the same order as listed.

On Implementation 
-----------------

The functionality should be encapsuled in the UI-
independent command object. Otherwise, it would not
be reusable in other contexts.

Original issue reported on code.google.com by tortoisesvn on 6 Feb 2011 at 5:28

GoogleCodeExporter commented 9 years ago
To your point that these operations are potentially destructive, you might want 
to consider leaving the existing Cleanup command as is, and add an Extended 
Cleanup command to the *extended* context menu.

Original comment by ryan.j.o...@gmail.com on 16 May 2011 at 12:12

GoogleCodeExporter commented 9 years ago
[] Unversion working copy
that isn't really needed anymore with WC-NG. And I don't think that would count 
as "cleaning up" either.

[] Delete ignored files and folders
I think this should better be "Delete unversioned and ignored files and 
folders".

Original comment by tortoisesvn on 2 Jun 2011 at 7:13

GoogleCodeExporter commented 9 years ago
Another point to consider: reverting changes won't work if the "status cleanup" 
in the previous step fails. The same applies to all deleting unversioned items 
because to find those, we have to execute an 'svn st' and that would then fail 
as well (well, most likely fail since cleanup is usually done if the working 
copy is in a bad state).

Original comment by tortoisesvn on 2 Jun 2011 at 7:16

GoogleCodeExporter commented 9 years ago
Considering the revert:
revert is a lossy operation. I mean all local changes are lost.

In the revert dialog, the user has at least a chance to see beforehand what 
exactly is going to be reverted.

So I think we should first fetch the status of the path recursively, pick out 
any file or folder that doesn't have a 'normal' status and then revert them all 
one by one, but first moving them to the trash first as we do in the existing 
revert.

That will of course take longer, but if "delete unversioned and ignored files 
and folders" is checked too, that status fetch must be done anyway. And the 
time it takes to revert the items individually and moving them to the trash 
first is I think worth it.

Original comment by tortoisesvn on 2 Jun 2011 at 8:11

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r21517.

Original comment by tortoisesvn on 3 Jun 2011 at 4:05