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 ]
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
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. :)
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);