New dialog for auto rename
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QBzr |
Confirmed
|
Low
|
Unassigned |
Bug Description
An efficient and reliable auto-rename feature, this is finding renames
between removed and added files, is quite useful:
1)
Tracking 3rd party code and create a new changeset for every minor
or major release. There might be too many files moved around and
sorting out the real deletes from the moves might be too much work.
2)
Tracking content when working in an IDE (like Eclipse) and moving
classes around while refactoring.
3)
If you have forgotten to use bzr mv, or you do not want to use it
because it's to much trouble and moving the files around in the
explorer is much quicker.
Unfortunately a command line tool is never efficient here. It may
list best matches (between removed + added files) but you have
little possibilities when the best match is not the correct one. The
detection algorithm which finds renames, no matter how sophisticated
it may be, can never guess what the intention of the user is. So what
is needed is a nice GUI with a list of matches (with scores) where the
user can easily choose the right match.
The idea is a dialog with two lists. A first list with possible matches,
and a second for the picked renames: if a rename in the first list is
picked, all entries with either of the both files are removed, and the
rename is entered in the second list. To easily find best renames
the lists have 4 columns: removed file name, added file name,
matching score of file content, matching score of file names. The 4
columns can be sorted by the user.
Changed in qbzr: | |
importance: | Undecided → Low |
status: | New → Confirmed |
tags: |
added: feature removed: feature-request idea |
I'd like to see a qmv dialog added that covers moves and renames. Here's a sketch:
Action
[*] Rename item
[ ] Record renamed item
[ ] Move items
[ ] Guess moved items
Options
...
The options would change based on the action selected. For the first 3, there would be 'From' and 'To' locations:
* Rename: From would be any file/dir, To would be any file/dir
* Record rename: From would be from the inventory, To would be an existing file/dir
* Move: From would be multi-select, To would be a directory
'Guess' would take a directory.
Here's the mapping to the command line:
* Rename => bzr mv From To
* Record rename => bzr mv From To --after
* Move => bzr mv a b c To
* Guess moves => bzr mv auto --dry-run (and then let the user select which ones to do)
This would rock! (We push renames as being a key bzr strength so it's sad we don't have a q dialog for them yet.)