The KWWidgets subdirectory contains a portion of the KWWidgets project from kwwidgets.org


The VolView-KWWidgets-upstream branch in the KWWidgets subdirectory contains the latest
version of KWWidgets that has been copied into VolView.  Sticky tags on the
branch mark versions that have been merged into the VolView trunk.

MOST RECENTLY MERGED TAG: VolView-KWWidgets-upstream-2006-09-06

See below for instructions to upgrade the KWWidgets version.

------------------------------------------------------------------------------
In order to upgrade the KWWidgets version contained follow the steps below.
Make sure other developers know to not change the VolViewExternalLibraries/KWWidgets
directory during this process.

1.) Create a checkout of VolView and make sure there are no modified
    files.

2.) Move your checkout to the "VolView-KWWidgets-upstream" branch:

  cd /path/to/VolViewExternalLibraries/KWWidgets
  cvs update -dP -r VolView-KWWidgets-upstream

3.) Export the desired KWWidgets version in another directory.  Use the -kv option
    to substitute CVS keywords in KWWidgets sources with the KWWidgets repository value.
    For this example we use 2006-09-07 because that is the date
    on which this README was written.

  cd /path/to/upstream
  cvs -d :pserver:anoncvs@www.vtk.org:/cvsroot/KWWidgets export -kv -r VolViewExternalLib KWWidgets

4.) Move the source to KWWidgets subdirectory in VolViewExternalLibraries/KWWidgets

  cd /path/to/VolViewExternalLibraries/KWWidgets
  cp -R /path/to/upstream/KWWidgets/* .

5.) Use diff to make sure the directories are the same.  If there are
    any files reported as "Only in ./something" they should be removed
    with "rm ./something" followed by "cvs rm ./something".

  cd /path/to/VolViewExternalLibraries/KWWidgets
  diff -r -x CVS . /path/to/upstream/KWWidgets

6.) Use "cvs -nq up" to identify files and directories that have
    been added.  Use "cvs add" and "cvs rm" to prepare all the
    changes for checkin.

7.) Commit the changes to the VolView-KWWidgets-upstream branch.

  cd /path/to/VolViewExternalLibraries/KWWidgets
  cvs commit -m "ENH: Updating VolView-KWWidgets-upstream branch to 2006-09-07 KWWidgets version."

8.) Create a sticky tag on the branch to mark the KWWidgets upstream version:

  cd /path/to/VolViewExternalLibraries/KWWidgets
  cvs tag VolView-KWWidgets-upstream-2006-09-07

9.) Move your checkout back to the trunk of VolView:

  cd /path/to/VolViewExternalLibraries/KWWidgets
  cvs update -dAP

10.) Create a sticky tag on the trunk to mark the state before the KWWidgets
     upgrade.  Note this tag should appear on the entire VolView and
     VolViewExternalLibraries tree:

  cd /path/to/VolViewLibraries
  cvs tag VolView-KWWidgets-2006-09-07-merge-pre

  cd /path/to/VolViewApplications
  cvs tag VolView-KWWidgets-2006-09-07-merge-pre

  cd /path/to/VolViewExternalLibraries
  cvs tag VolView-KWWidgets-2006-09-07-merge-pre

11.) Merge changes from the VolView-KWWidgets-upstream branch from between the last
     merge and the new version.  In this example the previous merge
     pulled changes up through the VolView-KWWidgets-upstream-2006-09-06 tag onto the trunk.
     Our new tag is VolView-KWWidgets-upstream-2006-09-07.  See the top of this file
     or the cvs log of VolViewExternalLibraries/KWWidgets/Common/vtkVersion.cxx to identify
     the most recent version that has been merged.

  cd /path/to/VolViewExternalLibraries/KWWidgets
  cvs update -d -j VolView-KWWidgets-upstream-2006-09-06 -j VolView-KWWidgets-upstream-2006-09-07
  (-d is for subdirectories)

12.) Manually resolve conflicts and test building VolView.  THIS STEP CONTAINS
     THE MAJORITY OF THE WORK IN MANUALLY EDITING KWWidgets SOURCES FOR VolView.
     Once everything builds and the tests pass it is safe to move on.

13.) Commit all changes to the entire VolView tree:

  cd /path/to/VolViewLibraries
  cvs commit -m "ENH: Merging changes from VolView-KWWidgets-upstream-2006-09-06 to VolView-KWWidgets-upstream-2006-09-07"

  cd /path/to/VolViewApplications
  cvs commit -m "ENH: Merging changes from VolView-KWWidgets-upstream-2006-09-06 to VolView-KWWidgets-upstream-2006-09-07"

  cd /path/to/VolViewExternalLibraries
  cvs commit -m "ENH: Merging changes from VolView-KWWidgets-upstream-2006-09-06 to VolView-KWWidgets-upstream-2006-09-07"

14.) Create a sticky tag on the trunk to mark the state after the KWWidgets
     upgrade.  Note this tag should appear on the entire VolView tree:

  cd /path/to/VolViewLibraries
  cvs tag VolView-KWWidgets-2006-09-07-merge-post

  cd /path/to/VolViewApplications
  cvs tag VolView-KWWidgets-2006-09-07-merge-post

  cd /path/to/VolViewExternalLibraries
  cvs tag VolView-KWWidgets-2006-09-07-merge-post

15.) Watch the dashboard!

 Remember to use :

cvs watch off and not cvs watch on if you would like to watch any change to a 
set of file. Otherwise you are marking all file as read only and asking developers
to use cvs edit and cvs unedit before each commit

------------------------------------------------------------------------------
NOTES:
cvs import will not do the -kb option flag for you unless a file extension is 
associated with the file. Therefore after you do a cvs import you need to run
the following command to find out which file were commited with the -kb option
flag:

  cvs status | grep  "\-kb" -B 3 | grep revision > kb.list

When a file was checked in with a -kb option flag whereas it should not, the solution to remove
this flag is to issue the following command:

  cvs admin -kkv Widgets/vtkLogoRepresentation.cxx ...

cvs will not change anything to your local copy. So you need to either remove the '-kb'
keyword from each CVS/Entries file. Or do a complete checkout of your project again. Be
careful there is no local change.

