Address Fossil weirdness which treats all closed branches as active tags with a special "closed" attribute

FossilOrigin-Name: 51d26d1e0912e6da939e9a48f0357847acd1501a
This commit is contained in:
kostas 2015-07-23 17:22:30 +00:00
parent 1607710731
commit 92ccbb10ab
3 changed files with 37 additions and 13 deletions

View File

@ -1,5 +1,5 @@
C Beautified\sChanges.md
D 2015-07-23T13:59:15.878
C Address\sFossil\sweirdness\swhich\streats\sall\sclosed\sbranches\sas\sactive\stags\swith\sa\sspecial\s"closed"\sattribute
D 2015-07-23T17:22:30.253
F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35
F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b
F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b
@ -220,7 +220,7 @@ F src/FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8
F src/FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2
F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df
F src/Fossil.cpp 42c24d1b29794063175d9cd8b07a9e0bb03500f4
F src/Fossil.cpp cbbf9a539f3ffaa822fd94b618ab715db8e65086
F src/Fossil.h b2e34e4a4ffde603699193bb20ce7c9c6a7fd3b6
F src/FslSettingsDialog.cpp 2531d3709f0eab66651671e3edead2ca720d07d5
F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7
@ -254,7 +254,7 @@ F ui/MainWindow.ui 10181826a25056ed5aba2b23a7d110159be7c043
F ui/RemoteDialog.ui 95a4750d972ed8c49bb10b95db91ff16cfe2dd0b
F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd
F ui/SettingsDialog.ui 47b9a31e28ad523f14a1c4cd361270b6babbdf7d
P 708acbaf0b2451802830cfeb4f3a127d991c89e7
R 2fd69014da4948ec6ad1ec6a018a91dd
P c3d03e6a79a457f42479b2338a5a6dd23b5e2a06
R 35a54710df4f70f990b3f3b9578e5dcc
U kostas
Z 5d8740f1cd0c5e1b2f7a2b3d7a44b8f2
Z 7261d48d5b22b979158fe8f8dff2b73e

View File

@ -1 +1 @@
c3d03e6a79a457f42479b2338a5a6dd23b5e2a06
51d26d1e0912e6da939e9a48f0357847acd1501a

View File

@ -521,18 +521,42 @@ bool Fossil::tagList(QStringMap& tags)
info.clear();
if(!runFossil(QStringList() << "info" << "tag:"+tag, &info, RUNFLAGS_SILENT_ALL))
// Use "whatis" instead of "info" to get extra information like the closed raw-tag
if(!runFossil(QStringList() << "whatis" << "tag:"+tag, &info, RUNFLAGS_SILENT_ALL))
return false;
/*
name: tag:refactor
artifact: 54059126aee6bb232373c1f134cc07ea0a6f4cca
size: 15831 bytes
tags: refactor
raw-tags: closed
type: Check-in by kostas on 2015-04-30 19:23:15
comment: Renamed tableView to fileTableView Renamed treeView to workspaceTreeView Renamed
tableViewStash to stashTableView
*/
QStringMap props;
ParseProperties(props, info, ':');
Q_ASSERT(props.contains("uuid"));
// uuid: 0e29a46f036d2e0cc89727190ad34c2dfdc5737c 2015-04-27 15:41:45 UTC
QStringList uuid = props["uuid"].trimmed().split(' ');
Q_ASSERT(uuid.length()>0);
bool closed = false;
if(props.contains("raw-tags"))
{
QString raw_tags = props["raw-tags"];
closed = raw_tags.indexOf("closed") != -1;
}
// Skip closed tags, which are essentially closed branches.
// FIXME: Fossil treating listing all closed branches as active tags with a "closed"
// "raw-tag" seems weird. Maybe this will change at some point. Re-evaluate this
// behaviour in the future.
if(closed)
continue;
Q_ASSERT(props.contains("artifact"));
QString revision = props["artifact"];
Q_ASSERT(!revision.isEmpty());
QString revision = uuid[0].trimmed();
tags.insert(tag, revision);
}
return true;