buildbot/buildbot — pull request #901 by jpommerening (2013-10-09 12:01:04+00:00)
Title: Check for "sticky dates" in CVS step

If a previous build did check out a specific "revision" (a timestamp actually) we can't update the directory with `cvs update` (unless we use `-A`, see http://evscm.org/manual/html/Sticky-tags.html). The simple (and safe) solution is to just clobber the directory in that case.

This patch adds the following to `CVS._sourcedirIsUpdatable()`:

* Upload the `CVS/Entries` file from the slave
* Examine the file contents, line-by-line, for any sticky dates

The `Entries` file looks like this:

/Filename/1.1/Fri May 17 23:20:00 2013//D2013.10.08.11.20.33
/Other/1.2.3.4/Fri May 17 23:20:00 2013//TMY_FANCY_TAG_OR_BRANCH
D

To detect sticky dates, we can iterate the lines (except the last one), split them by slashes and check if the last field starts with a capital `D`.