Archived issue #0030592
Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
Description
Currently Draw Harness provides a set of commands configuring viewer background:
- vsetcolorbg sets background color.
- vsetgradientbg sets gradient (between 2 colors) background.
- vsetgrbgmode modifies gradient filling mode.
- vsetbg set background image.
- vsetbgmode modifies background image filling mode.
This set is too much for a functionality managing the same thing - viewer background.
It is desired to merge all possible options within single command vbackground (preserving old commands as aliases to new command), and make new command following best practices. In particular, color should be parsed via ViewerTest::ParseColor() command, and it should be possible entering filling type via name instead of integer value.
In addition, ViewerTest::ParseColor() should be extended to:
- Allow [0,255] color components definition by checking that all arguments are integers, at least one argument is >=2 and all arguments <=255.
So that 0 0 0 and 1 0 0 will be parsed as floating [0.0,1.0] values.
- Support hex color codes like #0000FF and #0000FF00.
Existing test cases should be updated to use new vbackground command syntax with colors specified by name or float values.
- vsetcolorbg sets background color.
- vsetgradientbg sets gradient (between 2 colors) background.
- vsetgrbgmode modifies gradient filling mode.
- vsetbg set background image.
- vsetbgmode modifies background image filling mode.
This set is too much for a functionality managing the same thing - viewer background.
It is desired to merge all possible options within single command vbackground (preserving old commands as aliases to new command), and make new command following best practices. In particular, color should be parsed via ViewerTest::ParseColor() command, and it should be possible entering filling type via name instead of integer value.
In addition, ViewerTest::ParseColor() should be extended to:
- Allow [0,255] color components definition by checking that all arguments are integers, at least one argument is >=2 and all arguments <=255.
So that 0 0 0 and 1 0 0 will be parsed as floating [0.0,1.0] values.
- Support hex color codes like #0000FF and #0000FF00.
Existing test cases should be updated to use new vbackground command syntax with colors specified by name or float values.
Steps to reproduce
Not required
Public activity
56 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Fri Mar 22 15:34:25 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
ViewerTest::ParseColor() functionality is extended to:
- Allow [0, 255] color components definition by checking that all arguments are integers, at least one argument is >= 2.
So that 0 0 0 and 1 0 0 are parsed as real [0.0, 1.0] values.
- Support hex color codes like #0000FF and #0000FFFF (including short hex variants #00F and #00FF).
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Fri Mar 22 15:34:25 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
ViewerTest::ParseColor() functionality is extended to:
- Allow [0, 255] color components definition by checking that all arguments are integers, at least one argument is >= 2.
So that 0 0 0 and 1 0 0 are parsed as real [0.0, 1.0] values.
- Support hex color codes like #0000FF and #0000FFFF (including short hex variants #00F and #00FF).
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Fri Mar 29 21:32:50 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
Command vbackground is created. Tests are not changed yet.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Fri Mar 29 21:32:50 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
Command vbackground is created. Tests are not changed yet.
Please split patch in two pieces - Color parsing improvements and vbackground command introduction (register dedicated issue for this purpose), so that one patch can be based on another one (if necessary).
There are double empty lines / redundant empty lines in the patch.
Please check your formatting settings and avoid putting too many empty lines - their presence should split logical blocks in the code.
Please avoid uninitialized variables, even if they are supposed to be initialized by called function.
These are probably inline functions.
lengths.
[here and in other places] line length limits within Coding Rules are suggestive, not imperative.
It is better splitting long text by lines basing on sentence / logical parts,
rather than aborting line in the middle.
character.
Consider installing Spell Checked extension to you IDE to avoid misprints.
successful
These duplicating declarations make no sense - please include <Graphic3d_Vec3.hxx> instead.
Please discard unrelated changes (though I don't understand what they are doing in this diff at all).
+} // namespace
+
+
+//=======================================================================
+// function : ColorFromName
...
+ Quantity_ColorRGBA aColor;
+
+ if (!Quantity_Color::ColorFromName (theColorNameString, aColor.ChangeRGB ()))
+ {
+ return false;
+ }
+ theColor = aColor;
+
...
+
+ ColorInteger aHexColorInteger;
+
+ if (!ConvertStringToInteger (aHexColorString, aHexColorInteger, 16u))
There are double empty lines / redundant empty lines in the patch.
Please check your formatting settings and avoid putting too many empty lines - their presence should split logical blocks in the code.
+ Quantity_NameOfColor aColorName; + + if (!ColorFromName (theColorNameString, aColorName))
Please avoid uninitialized variables, even if they are supposed to be initialized by called function.
+Standard_Boolean Quantity_Color::ColorFromName (const Standard_CString theColorNameString, Quantity_Color& theColor)
+{
...
+bool Quantity_Color::ColorFromHex (const Standard_CString theHexColorString, Quantity_Color& theColor)
+{
These are probably inline functions.
+ //! Defines all possible lengthes of strings representing color in hex format + struct HexColorLengthStruct
lengths.
+ //! value, where color components represent digits: an alpha component is a low number and a red component is a high + //! number) ... + //! @tparam TheLessComparableType the type of the passed values (it must support the less comparability for its + //! values)
[here and in other places] line length limits within Coding Rules are suggestive, not imperative.
It is better splitting long text by lines basing on sentence / logical parts,
rather than aborting line in the middle.
+ //! Checks if the charater is a hexadecimal digit (0 .. 9, a .. f, A .. F)
character.
Consider installing Spell Checked extension to you IDE to avoid misprints.
+ //! @return true if parsing was successfull, or false otherwise
successful
+typedef NCollection_Vec3<Standard_ShortReal> Graphic3d_Vec3; + +typedef NCollection_Vec3<Standard_Real> Graphic3d_Vec3d;
These duplicating declarations make no sense - please include <Graphic3d_Vec3.hxx> instead.
-#else
-static Handle(Xw_Window)& VT_GetWindow(){
- static Handle(Xw_Window) XWWin;
- return XWWin;
-}
+#else
+static Handle(Xw_Window)& VT_GetWindow(){
+ static Handle(Xw_Window) XWWin;
+ return XWWin;
+}
+
+static void VProcessEvents(ClientData,int);
+#endif
+
...
Please discard unrelated changes (though I don't understand what they are doing in this diff at all).
+Standard_Boolean Quantity_Color::ColorFromName (const Standard_CString theColorNameString, Quantity_Color&
theColor)
+{
...
+bool Quantity_Color::ColorFromHex (const Standard_CString theHexColorString, Quantity_Color& theColor)
+{These are probably inline functions.
Only Quantity_Color::ColorFromName() can be made inline. It is impossible to make Quantity_Color::ColorFromHex() inline because an object of the Quantity_Color class is a member of the Quantity_ColorRGBA class.
+typedef NCollection_Vec3<Standard_ShortReal> Graphic3d_Vec3; + +typedef NCollection_Vec3<Standard_Real> Graphic3d_Vec3d;
These duplicating declarations make no sense - please include <Graphic3d_Vec3.hxx> instead.
They make sense in fact because <Graphic3d_Vec3.hxx> includes <NCollection_Vec3.hxx> that contains a template class definition. So such construction ("a forward declaration of a class template specialization alias") may reduce compile time a bit. It might make sense to consider adding of special header files for this purpose (aka <Graphic3d_Vec2fwd.hxx>, <Graphic3d_Vec3fwd.hxx>, <Graphic3d_Vec4fwd.hxx>, <Graphic3d_Mat4fwd.hxx>) that would contain only such forward declarations.
...though I don't understand what they are doing in this diff at all.
The cause of such strange behavior of the diff is a simple extra empty line # 175.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Tue Apr 2 18:58:08 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
New command vbackground is created. Old background commands are made aliases for the newly created command (including vsetdefaultbg). Tests are not changed yet.
Some reviewer's remarks are taken into account.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Tue Apr 2 18:58:08 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
New command vbackground is created. Old background commands are made aliases for the newly created command (including vsetdefaultbg). Tests are not changed yet.
Some reviewer's remarks are taken into account.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Wed Apr 3 17:53:04 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
Tests are changed using newly added command vbackground.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Wed Apr 3 17:53:04 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
Tests are changed using newly added command vbackground.
-# -# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type -# R1\G1\B1 - First color [0..255] -# R2\G2\B2 - Second color [0..255] -# Type 0 to 8 -# 0 = NONE, -# 1 = HORIZONTAL, -# 2 = VERTICAL, -# 3 = DIAGONAL1, -# 4 = DIAGONAL2, -# 5 = CORNER1, -# 6 = CORNER2, -# 7 = CORNER3, -# 8 = CORNER4 +# +# vbackground -gradient Color1 Color2 [-gradientMode FillMethod] +# +# Color: Red Green Blue - where Red, Green, Blue must be integers within the range [0, 255]\n" +# or reals within the range [0.0, 1.0]\n" +# ColorName - one of WHITE, BLACK, RED, GREEN, BLUE, etc.\n" +# #HHH, [#]HHHHHH - where H is a hexadecimal digit (0 .. 9, a .. f, or A .. F)\n" +# +# FillMethod: one of NONE, HOR (horizontal), VER (vertical), DIAG1 (diagonal1), DIAG2 (diagonal2), +# CORNER1, CORNER2, CORNER3, CORNER4
These obsolete comments in test script should be removed - command help should be enough.
set R2 0 set G2 0 set B2 255 -set Type 5 +set Type CORNER1
The temporary variables can be skipped now (passed to command directly as values), when command syntax has been improved (these dummy variables have been intended to understand what is actually passed to command, when it tool hundred of numbers as argument list).
Colors to be replaced by 0..1 or with names.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Tue Apr 9 19:10:29 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
A new command vbackground is created. Old background commands are made aliases for the newly created command (including vsetdefaultbg).
Tests are modified using newly added command vbackground.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Tue Apr 9 19:10:29 2019 +0300
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
A new command vbackground is created. Old background commands are made aliases for the newly created command (including vsetdefaultbg).
Tests are modified using newly added command vbackground.
Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/ALL/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Branch in products: CR30592
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Branch in products: CR30592
+template <typename Element_t> +class NCollection_Vec3; + +typedef NCollection_Vec3<Standard_ShortReal> Graphic3d_Vec3; + +typedef NCollection_Vec3<Standard_Real> Graphic3d_Vec3d;
Please never use template forward declaration without a very good rationale.
Hypothetical compilation time improvement is no excuse for these error-prone constructions.
OCCT Coding Rules document currently lacks information about forward declarations:
https://dev.opencascade.org/doc/overview/html/occt_dev_guides__coding_rules.html
Practically, OCCT code tends to mixture reasonable amount (but NOT everything) of forward declarations for Handle-types and gp primitives,
while NCollection templates are always header-included.
Considerations about Forward Declarations from Google C++ Style Guide can be also helpful (although OCCT Rules are quite different from this):
https://google.github.io/styleguide/cppguide.html#Forward_Declarations
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Wed Apr 10 11:42:24 2019 +0300
# Forward declaration of the NCollection_Vec3 class template is removed.
# The code is fixed to prevent VC10 compile warnings
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Wed Apr 10 11:42:24 2019 +0300
# Forward declaration of the NCollection_Vec3 class template is removed.
# The code is fixed to prevent VC10 compile warnings
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/ALL/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Branch in products: CR30592
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Branch in products: CR30592
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
+class Quantity_Color; + +class Quantity_ColorRGBA; + +class gp_Vec; + +class gp_Pnt; +
Redundant empty lines.
+//! The key of the unnamed command option +const std::size_t THE_UNNAMED_COMMAND_OPTION_KEY = (std::numeric_limits<std::size_t>::max)(); + +//! The key of the help command option +const std::size_t THE_HELP_COMMAND_OPTION_KEY = 0;
Unexpected unscoped variables in header file.
+ theCommands.Add ("vsetbg",
+ "load image as background.\n"
+ "This command is obsolete. Use vbackground instead.\n"
+ "\n"
Please drop exhaustive description of deprecated commands - fit their help into 1-2 lines.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Mon Apr 15 17:32:09 2019 +0300
# Reviewer's remarks are taken into account:
# * Redundant empty lines are removed.
# * Global constants with some command option key values are made ViewerTest_CmdParser's class static data members.
# * The exhaustive description of obsolete background commands is removed.
# A bug with incorrect checking if a viewer is needed to perform a background changing operation is fixed.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Mon Apr 15 17:32:09 2019 +0300
# Reviewer's remarks are taken into account:
# * Redundant empty lines are removed.
# * Global constants with some command option key values are made ViewerTest_CmdParser's class static data members.
# * The exhaustive description of obsolete background commands is removed.
# A bug with incorrect checking if a viewer is needed to perform a background changing operation is fixed.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/ALL/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Branch in products: CR30592
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Branch in products: CR30592
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Wed Apr 17 10:43:45 2019 +0300
# Precision of floating-point color components is increased (from 3 digits after point to 6 digits). This change may probably resolve the problem with background gradient changes in tests.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Wed Apr 17 10:43:45 2019 +0300
# Precision of floating-point color components is increased (from 3 digits after point to 6 digits). This change may probably resolve the problem with background gradient changes in tests.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/ALL/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 16550.99000000005 / 16536.409999999894 [+0.09%]
Products
Total CPU difference: 10466.700000000035 / 10520.190000000048 [-0.51%]
Windows-64-VC14:
OCCT
Total CPU difference: 17989.8125 / 17951.921875 [+0.21%]
Products
Total CPU difference: 12008.28125 / 12011.875 [-0.03%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 16550.99000000005 / 16536.409999999894 [+0.09%]
Products
Total CPU difference: 10466.700000000035 / 10520.190000000048 [-0.51%]
Windows-64-VC14:
OCCT
Total CPU difference: 17989.8125 / 17951.921875 [+0.21%]
Products
Total CPU difference: 12008.28125 / 12011.875 [-0.03%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Thu Apr 18 10:49:53 2019 +0300
# VC9, VC10, VC11 compilation errors are fixed.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Thu Apr 18 10:49:53 2019 +0300
# VC9, VC10, VC11 compilation errors are fixed.
Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/ALL/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
+//! Old versions of Microsoft Visual Studio support explicit template instantiation declaration only as an extension +//! or doesn't support using explicit template instantiation declaration and definition in one file. +//! Full support of this C++ feature is available since MS VS2013. +#if defined(_MSC_VER) && (_MSC_VER >= 1800)
Please just drop this code - it doesn't worth putting platform-dependent code in this place.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Thu Apr 18 13:19:36 2019 +0300
# Explicit template instantiation declarations of ViewerTest_CmdParser template methods are removed.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Thu Apr 18 13:19:36 2019 +0300
# Explicit template instantiation declarations of ViewerTest_CmdParser template methods are removed.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Patch is ready for review (only compilation was performed without execution of any tests): http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/OCCT%20compile/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Last strange link error is caused by the bug in Microsoft Visual Studio 2013 and older versions: https://stackoverflow.com/q/31074546/3043539
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Fri Apr 19 10:22:14 2019 +0300
[revision removed]
Detailed log of new commits:
Author: tiv
Date: Fri Apr 19 10:22:14 2019 +0300
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Patch is ready for review (only compilation was performed without execution of any tests): http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/OCCT%20compile/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30592_3-master-TIV/view/OCCT%20compile/
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Main OCCT branch: [archived branch]
OCCT branch with squashed commits: CR30592_3
Main branch in products: CR30592
Products branch with squashed commits: CR30592_1
Warnings were eliminated
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Related records