Changeset 1495


Ignore:
Timestamp:
Aug 27, 2012, 6:06:43 AM (7 years ago)
Author:
Peter Johansson
Message:

merge patch release 0.9.6 into trunk

Location:
trunk
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/Makefile.am

    r1470 r1495  
    55# Copyright (C) 2005, 2006 Jari Häkkinen
    66# Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
    7 # Copyright (C) 2009, 2010, 2011 Peter Johansson
     7# Copyright (C) 2009, 2010, 2011, 2012 Peter Johansson
    88#
    99# This file is part of svndigest, http://dev.thep.lu.se/svndigest
     
    117117  @echo "creating $@"
    118118
     119STABLE_VERSION = $(SVNDIGEST_MAJOR_VERSION).$(SVNDIGEST_MINOR_VERSION)
     120STABLE_BRANCH = ^/branches/$(STABLE_VERSION)-stable
     121
    119122# create a tag from current stable branch; depends on check-version to
    120123# ensure that version is macro.minor.micro (no pre suffix), that wc is
    121124# pristine and updated.
    122125svn-tag: check-version check-svn-diff
    123   svn copy \
    124   ^/branches/$(SVNDIGEST_MAJOR_VERSION).$(SVNDIGEST_MINOR_VERSION)-stable\
    125   ^/tags/$(VERSION) -m "tagging version $(VERSION)"
     126  svn copy $(STABLE_BRANCH) ^/tags/$(VERSION) \
     127  -m "tagging version $(VERSION)"
     128
     129# create a stable-branch from trunk
     130svn-stable-branch: check-svn-diff all
     131  svn copy ^/trunk $(STABLE_BRANCH) \
     132  -m "New stable branch $(STABLE_VERSION)" \
     133  && svn co $(STABLE_BRANCH) ../svndigest-$(STABLE_VERSION).x \
     134  && bin/svndigest-copy-cache -v -t ../svndigest-$(STABLE_VERSION).x
    126135
    127136syntax-check: assert-header-without-use \
     
    144153  grep -LE "[^ \t\(=]errno" $$files | grep $(srcdir) && \
    145154  { echo "$@: in files listed above"; exit 1; } || :;
    146 
  • trunk/NEWS

    r1470 r1495  
    1515    http://dev.thep.lu.se/svndigest/svn/branches/0.9-stable
    1616
     17Version 0.9.6 (released 27 August 2012)
     18  - Fixed bug that svndigest crashed when plotting 'others' and data
     19    was empty (bug #515)
     20
     21  A complete list of closed tickets can be found here [[br]]
     22  http://dev.thep.lu.se/svndigest/query?status=closed&milestone=svndigest+0.9.6
     23
    1724Version 0.9.5 (released 19 March 2012)
    18   Fixed bug that directories belonging to other WC were traversed (bug #512)
     25  - Fixed bug that directories belonging to other WC were traversed (bug #512)
    1926
    2027  A complete list of closed tickets can be found here [[br]]
  • trunk/README.developer

    • Property svn:mime-type deleted
    r1299 r1495  
    1515
    1616Commits should be minimalistic and the projects should always compile
    17 (`make` and `make check`) when someone makes a clean checkout. There is
     17('make' and 'make check') when someone makes a clean checkout. There is
    1818a short introduction to subversion and its usage available as
    1919[http://cbbp.thep.lu.se/~jari/documents/subversion_guidelines/index.html Subversion guidelines].
     
    2727build man page you will need help2man.
    2828
    29 === bootstrap and autoreconf === 
     29=== bootstrap and autoreconf ===
    3030
    3131At first checkout from the repository you must run the bootstrapping
    3232utility
    3333
    34   `./bootstrap`
    35 
    36 to setup autoconf files. To push subsequent changes of this file into
    37 the build scripts you run
    38 
    39    `autoreconf`
     34  #> ./bootstrap
    4035
    4136
    4237=== configure ===
    4338
    44 Run the generated configure script with 
    45 
    46   `./configure --enable-debug`
    47 
    48 The option flag `--enable-debug` turns on debug options (e.g. enables
    49 assertions).
     39Run the generated configure script with
     40
     41  #> ./configure --enable-debug
     42
     43The option flag '--enable-debug' turns on some compiler options
     44appropriate for development (e.g. enables assertions).
    5045
    5146
    5247=== Testing ===
    5348
    54 Test programs should be created and added to the `make check`
     49Test programs should be created and added to the 'make check'
    5550execution. Always check that the test runs before committing code to
    56 the repository, i.e., run `make check`. For more details on how to run
    57 and write tests, please refer to file `test/README`.
    58 
    59 There is a test repository in source:trunk/test/repo that is a part of
     51the repository, i.e., run 'make check'. For more details on how to run
     52and write tests, please refer to file 'test/README'.
     53
     54There is a test repository in 'test/repo' that is a part of
    6055the svndigest repository. The logic behind this is that it is nice to
    6156have a common test repository that can be used off-line. Changes to
     
    6560propagated to the svndigest repository and it is important that some
    6661files created in the test repository are manually added to the
    67 svndigest repository. Assuming that `make check` is run before a
     62svndigest repository. Assuming that 'make check' is run before a
    6863commit, a warning is generated if the test repository is inconsistent
    6964with the svndigest repository. There will be a diagnostic message and
     
    7166problem manually.
    7267
    73 The problem is simply that the file source:trunk/test/repo/db/current
    74 is changed compared to the svndigest repository. The `current` file
     68The problem is simply that the file 'test/repo/db/current'
     69is changed compared to the svndigest repository. The 'current' file
    7570indicates a specific number of change sets within the test repository
    76 and the directories source:trunk/test/repo/db/revs and
    77 source:trunk/test/repo/db/revprops contains a matching number of
     71and the directories 'test/repo/db/revs' and
     72'test/repo/db/revprops' contains a matching number of
    7873change sets. However, the change sets added to the test repository are
    7974not automatically added to the svndigest repository, therefore the new
    80 files in the `revs` and `revprops` directories must be added manually
     75files in the 'revs' and 'revprops' directories must be added manually
    8176to the svndigest repository.
    8277
     
    9489The take home message is that developers should communicate with each
    9590other when changing the test repository in order to avoid to large
    96 repository conflicts. AND read the output of `make check`.
     91repository conflicts. AND read the output of 'make check'.
    9792
    9893
    9994=== yat library ===
    10095
    101 Directory `yat/` contains some files from the yat library. These
     96Directory 'yat/' contains some files from the yat library. These
    10297files are not owned by svndigest and should not (if possible) be
    103 edited here. For more details please see `yat/README`.
     98edited here. For more details please see 'yat/README'.
    10499
    105100=== Output file structure ===
     
    107102A directory reflecting the parsed directory is generated for each
    108103combination of StatsType, Author, and LineType, which is located in
    109 `<TARGET>/<ROOT>/StatsType/Author/LineType/`. Author may be, on top of
    110 each author in the repository, a directory ''all'' that is a sum over
    111 all Authors. In same fashion LineType may be any of the three
    112 linetypes but may also ''total'', which a sum over all linetypes. In
    113 each `<TARGET>/<ROOT>/StatsType` there are directories
    114 `images/LineType` that contain a structure reflecting the parsed
    115 directory with images for every combination of File, LineType, and
    116 StatsType. Images for different Authors are identical and therefore
     104'<TARGET>/<ROOT>/StatsType/Author/LineType/'. Author may be, on top of
     105each author in the repository, a directory 'all' that is a sum over
     106all authors. In same fashion 'LineType' may be any of the three
     107linetypes but may also be 'total', which is a sum over all
     108linetypes. In each '<TARGET>/<ROOT>/StatsType' there are directories
     109'images/LineType' that contain a structure reflecting the parsed
     110directory with images for every combination of 'File', 'LineType', and
     111'StatsType'. Images for different authors are identical and therefore
    117112shared between authors.
    118113
    119114== Design and Motivation ==
    120115
    121 Please refer to source:trunk/doc/HACKING for a list of design
    122 decisions we try to follow.
    123 
    124 == Releasing ==
    125 
    126 See http://dev.thep.lu.se/svndigest/wiki/ReleaseProcedure
    127 
    128 
    129 -------------------------------------------------------------------------
    130 {{{
     116Please refer to 'doc/HACKING' for a list of design decisions we try to
     117follow.
     118
     119= Releasing =
     120
     121The main development is performed in the trunk branch of the
     122repository. A new release branch is created for each minor release
     123from the trunk and patch releases are snapshots of the minor release
     124branch. This implies that patch work is performed in the minor release
     125branch, and changes made release branch is transferred to the trunk
     126every time a new patch release is made. Remember, patch work should be
     127limited to bug fixes and important fixes only leaving development of
     128new features and designs to the trunk branch.
     129
     130Releases should only be performed by an appointed member of the team,
     131the Release Manager.
     132
     133== Release procedure ==
     134
     135This section describes what to do when publishing a release.
     136
     137=== Creating a release branch ===
     138
     139Once people agree that a new release branch should be made, the
     140Release Manager creates it with the following procedure (substitute
     141A.B with the version you are preparing):
     142
     1431. Mark the new minor series in 'NEWS':
     144
     1458<---
     146 See the end for copyrights and conditions.
     147
     148+svndigest A.B.x series from
     149+          http://dev.thep/lu.se/svndigest/svn/branches/A.B-stable
     150+
     151Version A.B (released NOT YET)
     1528<---
     153
     154   commit the changes with
     155
     156   #> svn ci -m "preparing branch A.B-stable"
     157
     1582. Update copyright statements with commands
     159
     160   #> svncopyright -v
     161
     162   Examine the updates and commit changes with
     163
     164   #> svn ci -m "updating copyright statements"
     165
     1663. Create a new minor branch using a one liner like
     167
     168   #> make svn-stable-branch
     169
     1704. Prepare the trunk for the next minor release:
     171
     172   a) Update version number in 'm4/version.m4'.
     173      MY_VERSION_early([A], [B+1], [0], [true])
     174
     175   b) Add an entry in 'NEWS'
     176
     177version A.[B+1] (released NOT YET)
     178
     179      The date is set when version A.[B+1] is released.
     180
     181   c) Commit changes to the repository
     182
     183   #> svn ci -m "Bumping VERSION to A.[B+1]"
     184
     185
     186=== Rolling a release ===
     187
     188This section describes how to release a new version. If this is a
     189minor release (C+0), replace A.B.C with A.B. Before you start, make
     190sure you have write access to sourceforge page and that you can create
     191checksum files, i.e., you need 'openssl' and 'md5'/'md5sum'.
     192
     1931. Create a new milestone for next patch release A.B.[C+1].
     194
     1952. Update version number in 'm4/version.m4'. Locate and change the below line
     196---
     197MY_VERSION_early([A], [B], [C], [false])
     198---
     199
     2003. Update file 'THANKS'
     201
     2024. Make sure that the items in 'NEWS' cover the new features of the
     203   release. Set the date for the new release:
     204
     205version A.B (released 26 June 2007)
     206
     2075. Commit changes to the repository
     208
     209   #> svn ci -m "Preparing release A.B.C"
     210
     2116. Update copyright statements with commands
     212
     213   #> make && ./bin/svncopyright -v
     214
     215   Examine the updates and commit changes with
     216
     217   #> svn ci -m "updating copyright statements"
     218
     2197. Issue 'svn update' to make entire wc to be in revision 'HEAD'.
     220   Needless to say, make sure that the program is in a state to be
     221   released; make sure that all the tests pass, test the distribution
     222   package, and perform all other release tests you think is
     223   appropriate. Run:
     224
     225  #> make all && ./build_support/tag_and_release.sh
     226
     227
     2288. Update wiki first page under section 'Latest Release'.
     229
     230   a) Update version to A.B.C.
     231
     232   b) Update link to NEWS file to 'source:tags/A.B.C/NEWS'
     233
     234   c) If this is a minor release (C=0) update links to
     235      'source:branches/A.B-stable/doc/readme.txt',
     236      'source:branches/A.B-stable/README'.
     237
     2389. Update SubversionCheckout
     239
     240   a) In section 'svndigest latest release' update link to
     241      [source:tags/A.B.C/NEWS NEWS] and modify the svn commands to
     242
     243svn checkout http://dev.thep.lu.se/svndigest/svn/tags/A.B.C svndigest-A.B.C
     244
     245svn switch http://dev.thep.lu.se/svndigest/svn/tags/A.B.C
     246
     247   b) If this is a minor release (C=0) update link in 'svndigest stable' to
     248      [source:branch/A.B-stable/NEWS NEWS] and modify the svn commands to
     249
     250svn co http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable svndigest-A.B
     251
     252svn switch ^/branches/A.B-stable
     253
     25410. Add a version A.B.C using trac-admin tool
     255
     25611. Close milestone A.B.C
     257
     25812. Merge the release into trunk. Go to a pristine trunk WC and
     259
     260   #> cd /path/to/svndigest-trunk
     261   #> svn update
     262   #> svn diff
     263   #> svn merge ^/branches/A.B.C-stable
     264
     265   Resolve all conflicts. Run tests and perform all other appropriate
     266   tests to make sure that the merge does not create havoc. Typically
     267   changes in 'm4/version.m4' are problematic so check this file extra
     268   carefully.
     269
     270   Commit changes to the trunk branch.
     271
     272   #> svn commit -m "Merged release A.B.C to the trunk."
     273
     27413. Prepare stable branch for future release
     275
     276   a) Update version number in 'version.m4' in line
     277
     278      MY_VERSION_early([A], [B], [C+1], [true])
     279
     280   b) Add an entry in 'NEWS'
     281
     2828<---
     283version A.B.[C+1] (released NOT YET)
     2848<---
     285      The date is set when version A.B.[C+1] is released. [[br]][[br]]
     286
     287   c) Commit changes to the repository,
     288
     289   #> svn ci -m "Bumping version"
     290
     29114. Send an announcement to svndigest-users@lists.sourceforge.net
     292    using 'announment.txt' as template.
     293
     29415. Create a macport ticket, https://trac.macports.org/newticket, with
     295      summary='svndigest A.B.C',
     296      type=update,
     297      keywords="haspatch maintainer",
     298      and port=svndigest.
     299    Attach 'Portfile.diff' to newly created ticket.
     300
     301
     302--------------
    131303Copyright (C) 2005, 2006 Jari Häkkinen
    132304Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
    133 Copyright (C) 2009, 2010 Peter Johansson
     305Copyright (C) 2009, 2010, 2012 Peter Johansson
    134306
    135307This file is part of svndigest, http://dev.thep.lu.se/svndigest
     
    147319You should have received a copy of the GNU General Public License
    148320along with svndigest. If not, see <http://www.gnu.org/licenses/>.
    149 }}}
  • trunk/THANKS

    r1466 r1495  
    1818http://www.mhoenicka.de/system-cgi/blog/index.php?itemid=999
    1919
     20Vedran Ljubovic for reporting bug #515
     21
    2022-----------------------------------------------------------------------
    2123{{{
    2224Copyright (C) 2005, 2006 Jari Häkkinen
    2325Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
    24 Copyright (C) 2009, 2010 Peter Johansson
     26Copyright (C) 2009, 2010, 2012 Peter Johansson
    2527
    2628This file is part of svndigest, http://dev.thep.lu.se/svndigest
  • trunk/configure.ac

    r1487 r1495  
    304304                test/environment.h
    305305                test/Makefile])
     306
     307AC_CONFIG_FILES([build_support/tag_and_release.sh],
     308                [chmod +x-w build_support/tag_and_release.sh])
    306309
    307310AC_CONFIG_HEADER([yat/config_public.h])
  • trunk/lib/Functor.h

    r1418 r1495  
    77  Copyright (C) 2005 Peter Johansson
    88  Copyright (C) 2006, 2007, 2008 Jari Häkkinen, Peter Johansson
    9   Copyright (C) 2010 Peter Johansson
     9  Copyright (C) 2010, 2012 Peter Johansson
    1010
    1111  This file is part of svndigest, http://dev.thep.lu.se/svndigest
     
    163163    public std::binary_function<T&, const std::pair<const Key, T>&, void>
    164164  {
    165     T operator()(T& x, const std::pair<const Key, T>& p)
     165    void operator()(T& x, const std::pair<const Key, T>& p) const
    166166    {
    167167      x += p.second;
    168       return x;
    169168    }
    170169  };
  • trunk/lib/Stats.cc

    r1478 r1495  
    240240    if (iter==m.end() || iter->second.empty())
    241241      return 0;
     242    assert(iter->second.size());
    242243    return iter->second.back();
    243244  }
  • trunk/lib/StatsPlotter.cc

    r1306 r1495  
    126126      Colors::instance().get_color(label, r,g,b);
    127127      gp.current_color(r,g,b);
    128       gp.plot(others, label, others.back());
     128      gp.plot(others, label, others.size() ? others.back() : 0);
    129129    }
    130130    for ( ; i!=end; ++i) {
  • trunk/lib/Vector.h

    r1481 r1495  
    185185      size_ = std::max(size_, other.size());
    186186      return *this;
     187      return *this;
    187188    }
    188189
  • trunk/m4/find_apr.m4

  • trunk/m4/pkg.m4

  • trunk/m4/version.m4

  • trunk/m4/yat_add_flag.m4

  • trunk/test/repo

  • trunk/test/traverse_test.sh

    r1470 r1495  
    2929. ./init.sh || exit 99
    3030
    31 # skip this test as long as it is XFAIL because we get false negative
    32 # with older WC
    33 # FIXME, remove line below when this test is expected to be successful
    34 $SVN --version | $GREP "version 1.7" || exit_skip
    35 
    3631daughter=.svndigest/branches_wc
    3732
Note: See TracChangeset for help on using the changeset viewer.