Bug 54382

Summary: 'remove from repository' actually deletes local files
Product: [Applications] cervisia Reporter: Ben Burton <bab>
Component: generalAssignee: Bernd Gehrmann <bernd>
Status: RESOLVED FIXED    
Severity: wishlist CC: ana
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: added warning message to dialog.

Description Ben Burton 2003-02-10 05:30:09 UTC
Version:            (using KDE KDE 3.1)
Installed from:    Debian testing/unstable Packages
OS:          Linux

(Received through the Debian BTS, #146047)

Note: there was a bit of a conversation between the original bug submitter and the previous cervisia package maintainer; you can read the entire conversation at http://bugs.debian.org/146047 .  I've picked out the highlights below.

--- Original Bug Report ---

Following procedure:
1. add some graphic-files to a project
2. remember that you forgot to tag them as binary data
3. right-click and select 'remove from repository' to add them by hand with 
the '-kb' option
4. puke after noticing that you just fragged one afternoon of work ...

Note: I am not so sure how to do this better, since cvs requires you to first 
remove the file and then call 'cvs remove', so cervisia's behaviour is only 
what is necessary.
However, I see a few ways to improve this:
- change the menu-entry to read 'remove file from sourcetree and repository'
- mimick cvs' behaviour and tell $user to remove the file from the local 
workdir before removing it from the repository. Of course this cries for 
another menu-entry that lets you delete the file....
- move the file somewhere else eg file.ext -> file.ext~, as practiced by 
other programs too

--- Reply from Previous Maintainer ---

The current operation seem to be ok except for the problem you are 
experiencing with it.  I would thus forward the request to the upstream as 
a proposal for change.

I would further propose that instead of adding more commands we just change 
the remove to ask whether you want to backup the data somewhere before it 
actually commits the change.  If yes then it should pop up a directory 
browser so the user can choose.

What do you think?

--- Reply from Bug Submitter ---

There are various ways to solve that, but what I consider really necessary is 
that nothing is destroyed silently. It is not an operation that is used too 
often so ergonomic considerations are secondary.

[ remainder of reply deleted ]
Comment 1 Christian Loose 2003-02-24 22:40:39 UTC
Created attachment 1038 [details]
added warning message to dialog.

Hi!

What do you think about the added warning message (see attachment)? Do you
think
that this would be enough

I don't like the idea of backup files, because I think the normal case is to
remove
obsolete files from the repository.

Christian
Comment 2 Ben Burton 2003-02-25 00:11:49 UTC
Subject: Re:  'remove from repository' actually deletes local files

> What do you think about the added warning message (see attachment)? Do you
> think
> that this would be enough

Yep, works for me.

> I don't like the idea of backup files, because I think the normal case is to
> remove
> obsolete files from the repository.

Agreed - I think the warning should be fine.

Thanks - Ben. :)

Comment 3 Christian Loose 2003-02-28 23:17:33 UTC
Subject: KDE_3_1_BRANCH: kdesdk/cervisia

CVS commit by cloose: 

backport fix for BR #54382: 
Display warning message in remove dialog to make clear 
that the action will also remove the local copy of the selected files.

BTW, is it okay to add new i18n strings to the branch???

CCMAIL: 54382-done@bugs.kde.org


  M +6 -0      ChangeLog   1.22.2.7
  M +21 -0     commitdlg.cpp   1.6.2.2


--- kdesdk/cervisia/ChangeLog  #1.22.2.6:1.22.2.7
@@ -1,2 +1,8 @@
+2003-02-28  Christian Loose <christian.loose@hamburg.de>
+
+        * Fix BR #54382: Display warning message in remove dialog
+          to make clear that the action will also remove the local
+          copy of the selected files.
+
 2003-02-24  Christian Loose <christian.loose@hamburg.de>
 

--- kdesdk/cervisia/commitdlg.cpp  #1.6.2.1:1.6.2.2
@@ -20,4 +20,5 @@
 #include <kapplication.h>
 #include <kbuttonbox.h>
+#include <kiconloader.h>
 #include <klocale.h>
 #include <kconfig.h>
@@ -76,4 +77,24 @@ CommitDialog::CommitDialog(ActionType ac
         listbox->setEnabled(false);
     
+    if (action == Remove)    
+        {
+            QBoxLayout *warningLayout = new QHBoxLayout(this);
+
+            QLabel *warningIcon = new QLabel(this);
+            KIconLoader *loader = kapp->iconLoader();
+            warningIcon->setPixmap(loader->loadIcon("messagebox_warning", KIcon::NoGroup,
+                                                    KIcon::SizeMedium, KIcon::DefaultState,
+                                                    0, true));
+            warningLayout->addWidget(warningIcon);
+
+            QLabel *warningText = new QLabel(i18n("This will also remove the files from "
+                                                  "your local working copy!"), this);
+            warningLayout->addWidget(warningText);
+    
+            layout->addSpacing(5);
+            layout->addLayout(warningLayout);
+            layout->addSpacing(5);
+        }
+        
     QFrame *frame = new QFrame(this);
     frame->setFrameStyle(QFrame::HLine | QFrame::Sunken);