Summary: | commit says absolute pathname illegal for server | ||
---|---|---|---|
Product: | [Applications] cervisia | Reporter: | Roland Krause <rokrau> |
Component: | general | Assignee: | Christian Loose <christian.loose> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | kontakt, p92 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Roland Krause
2005-11-28 19:07:47 UTC
The error is caused by CommitDialog::setFileList() were '.' is replaced by the absolute file path. Christian, thanks for looking at this. Any chance this can be changed for 3.5.1? Roland --- Christian Loose <christian.loose@hamburg.de> wrote: [bugs.kde.org quoted mail] ---------------------------------------------------------------------------- > Severity|crash |normal > Status|NEW |ASSIGNED > > > > ------- Additional Comments From christian.loose hamburg de > 2005-11-29 10:49 ------- > The error is caused by CommitDialog::setFileList() were '.' is > replaced by the absolute file path. > SVN commit 484207 by cloose: fix bug #117220: Don't try to commit absolute pathnames. This seems to cause problems for some cvs servers. BUG:117220 M +26 -9 commitdlg.cpp --- branches/KDE/3.5/kdesdk/cervisia/commitdlg.cpp #484206:484207 @@ -36,7 +36,23 @@ #include "diffdlg.h" -CommitDialog::CommitDialog(KConfig& cfg, CvsService_stub* service, +class CommitListItem : public QCheckListItem +{ +public: + CommitListItem(QListView* parent, const QString& text, const QString fileName) + : QCheckListItem(parent, text, QCheckListItem::CheckBox) + , m_fileName(fileName) + { + } + + QString fileName() const { return m_fileName; } + +private: + QString m_fileName; +}; + + +CommitDialog::CommitDialog(KConfig& cfg, CvsService_stub* service, QWidget *parent, const char *name) : KDialogBase(parent, name, true, i18n("CVS Commit"), Ok | Cancel | Help | User1, Ok, true) @@ -63,14 +79,14 @@ QLabel *archivelabel = new QLabel(i18n("Older &messages:"), mainWidget); layout->addWidget(archivelabel); - + combo = new QComboBox(mainWidget); archivelabel->setBuddy(combo); connect( combo, SIGNAL(activated(int)), this, SLOT(comboActivated(int)) ); // make sure that combobox is smaller than the screen combo->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed)); layout->addWidget(combo); - + QLabel *messagelabel = new QLabel(i18n("&Log message:"), mainWidget); layout->addWidget(messagelabel); @@ -90,7 +106,7 @@ setButtonGuiItem(User1, KGuiItem(i18n("&Diff"), "vcs_diff")); enableButton(User1, false); connect( this, SIGNAL(user1Clicked()), - this, SLOT(diffClicked()) ); + this, SLOT(diffClicked()) ); setHelp("commitingfiles"); @@ -120,7 +136,7 @@ QString text = (*it != "." ? *it : currentDirName); edit->compObj()->addItem(text); - QCheckListItem* item = new QCheckListItem(m_fileList, text, QCheckListItem::CheckBox); + CommitListItem* item = new CommitListItem(m_fileList, text, *it); item->setOn(true); } } @@ -133,7 +149,8 @@ QListViewItemIterator it(m_fileList, QListViewItemIterator::Checked); for( ; it.current(); ++it ) { - files.append(it.current()->text(0)); + CommitListItem* item = static_cast<CommitListItem*>(it.current()); + files.append(item->fileName()); } return files; @@ -229,15 +246,15 @@ void CommitDialog::showDiffDialog(const QString& fileName) { DiffDialog *l = new DiffDialog(partConfig, this, "diffdialog"); - + // disable diff button so user doesn't open the same diff several times (#83018) enableButton(User1, false); - + if (l->parseCvsDiff(cvsService, fileName, "", "")) l->show(); else delete l; - + // re-enable diff button enableButton(User1, true); } *** Bug 119200 has been marked as a duplicate of this bug. *** *** Bug 123873 has been marked as a duplicate of this bug. *** |