degrade-cvs_direct-failure.p
[cvsps/4msysgit.git] / CHANGELOG
blobf86b1d89efe6972226ee230a4eaa13bd99247017
1 2.1
2 - lots of fixes to get the thing working sufficienly for cvs2git
3 - main features
4   - optionally detect and display ancestor branch information for
5     new detected branches
6   - never allow more than one revision of a file to be in a single
7     patchset (this may disturb the patchset numbers for historical
8     data :-(
9   - use file revisions to help sort, so that initial imports
10     won't be listed as patchset 1, with patchset 2 as the actual
11     creation of the files.
12   - reports log times in localtime (use TZ to override) 
13 - many downstream patches from Debian, special thanks to Marcus
14   Crafter for maintaining.  From the Debian changelog:
15    - patch from Kim Hansen to fix time calculation bug
16    - documentation patch from J. Bruce Fields
17    - directory name handling patch from David Kilzer
18    - others I'm not sure of, I'd happily update the credit here
20 2.0rc1
21 - resolve -r symbols during global symbol resolution
22 - using two -r arguments implicitly sets -b with branch
23   from second -r (if you can speak cvsps arguments, you'll
24   understand this)
25 - fix using cvsps against sourceforge where the actual
26   server repository path has many instances of the project
27   name in it and the 'strstr' was finding the wrong one.
28   instead use the equiv. of 'strrstr'
30 2.0b10
31 - fix bug where filenames with 'bad' characters (such as ' ')
32   were being sent unescaped to a shell
33 - add --no-cvs-direct and -Z 0 to disable cvs-direct and compression
34 - extend the 'fuzz-factor' concept by keeping a min/max date
35   encountered for each patchset and fuzz on this interval,
36   rather than fuzzing on the date of the first encountered
37   member only, helps for handling REALLY slow commits where a
38   HUGE number of individual files were modified at a slow trickle.
39 - it turns out that old versions of cvs have two problems
40   1) they don't support 'rlog' (handled)
41   2) they don't support 'version', which caused the workaround
42      for 1) to fail.
43   Now cvsps detects cvs versions too old to support version and/or
44   rlog.  Additionally, if server is too old, cvs-direct is
45   simply disabled.
46 - parse the rc file first so that the command line will override
47 - add -q to shut-up the warnings
49 2.0b9
50 - remove Mbinary from valid-response list - can't handle it
51 - much more (pedantic?) clean-up/close path in cvs_direct
52   to fix all of the lost data and hanging problems at close
53 - added rlog capability to cvs_direct, switched main code
54   to use it.
55 - added version capability to cvs_direct, now cvsps is 
56   completely independant of cvs binary for all operations!
57 - added --root and repository command-line arguments,
58   now cvsps is completely indepentant of having working
59   directory!
61 2.0b8
62 - fix the cvs_rupdate calls to use the real repository
63   instead of the mangled use_rep_path.  This broke
64   cvs_direct generation of add/remove diffs
65 - fix the sed expression to account for the difference
66   between +++ and --- in the first and second lines.
67   This broke remove diffs for direct and external.
68 - attempt to fix a hang-at-flush bug in cvs-direct
69   compression handling
71 2.0b7
72 - implement compression in cvs_direct
73 - add command line -Z to specify compression level.
74   applies to cvs-direct and external cvs
75 - implement 'cvs_diff' in cvs-direct
76 - use cvs_diff instead of cvs_rdiff because it allows
77   us to specify all of the lovely diff options
78 - change system to my_system so ctrl-c will get
79   through.  indirectly, this is necessary because
80   cvs has loused up the exit codes with the 'cvs diff'
81   command, making it impossible to determine whether
82   the program exited abnormally
83 - add parsing of ~/.cvsps/cvspsrc file at startup
84   where command line arguments can be listed, one
85   per line (parameters to arguments on the same line
86   as the argument). --norc prevents this
88 2.0b6
89 - fix bug where if -r was specified along with other
90   filter options, the other filter options were
91   applied first, and the start/end tags were
92   never found.
93 - change -f from strstr to regex
94 - change regex to EXTENDED regex
95 - add the --cvs-direct option
97 2.0b5
98 - add a cvs_check_cap for capability checking. 
99 - use cvs_check_cap to check whether rlog is 
100   supported.  it's not supported in 1.11 and  
101   before. warn if non-supported version is 
102   detected
103 - add --no-rcmds to manually disable rlog and rdiff
104 - add a fix for some bizarre inconsistencies found
105   in some random repositories, such as tagged
106   revisions that don't exist.
107 - remove the adaptive crap filter and bk_log_border
108   logic now that Larry has cleaned up the exported
109   BK->CVS trees.
111 2.0b4
112 - add the bk_log_border parsing logic to handle the
113   case where 'cvs log' text was committed into the log
114 - add 'adaptive crap filter' logic to handle all
115   of the different corruptions of the cvs log file
116 - switch to rdiff instead of diff to not require working 
117   files to be checked out.  Note: when --diff-opts are
118   specified, diff must be used (not rdiff) because
119   rdiff doesn't support options(?!!)
121 2.0b3
122 - add the --diff-opts for explicitly setting the diff 
123   options.  important for setting increased context for 
124   example. 
125 - use 'cvs rlog' instead of 'cvs log'.  important if 
126   there are empty directory pruned with cvs update -P
127   for getting consistent patchset numbering
128 - clean up patch_set_affects_branch for handling INVALID
129   tags and the -r especially around a branch point
130 - add the bkcvs proof-of-concept hack
133 2.0b2
134 - change the way INVALID tags are reported - show the exact
135   patchsets and revisions that conflict, and don't print 
136   anything for 'funky' tags/revisions
137 - add psid to the patchset structure and pass through tree
138   once just to assign the numbers.  this allows reporting
139   psid when problems are found (above)
140 - more code restructuring - move stats to own module
141 - commenting cleanups
142 - include the very rudimentary merge_utils.sh functions
143   I use to assist merging stuff
144 - change the way diffs are generated, handle individual
145   members that are before/after the -r tag restrictions
146 - change the semantics of the -s argument.  it now only
147   restricts the patch sets the same as the other filtration
148   arguments.  new argument -g turns on diff generation
149 - add manpage section discussing tag handling semantics
151 2.0b1
152 - major restructuring of source code.  single cvsps.c split into
153   a few modules
154 - major rework of the data structures in order to support the most
155   frequently requested, and most desired feature: -r.  cvsps
156   can now associated symbolic tags with specific patchsets,
157   branches are now associated with the patchset instead of 
158   the individual revision.  you can view patchsets committed
159   after a given symbolic tag, or between two tags.
160 - changed the handling of same author, same log message commits
161   on different branches. this now creates multiple patchsets
162 - changed the handling of 'file xyz initially added on branch xyz'
163   log messages, they now create hidden patchsets.
164 - these last two items have made the patchset numbering scheme
165   incompatible with the old scheme.  patchsets are going
166   to change numbers.
168 1.99.1 (not released)
169 - redid the data structures a bit to 'normalize' the references to 
170   a file revision.  this allows the program to detect the case
171   when a file is added on a branch, and generate the right output
172   for 'cvsps -s' in this case (frequent bug report)
173 - added the '-l' option to restrict patchsets based on log descr
174   content. (patch from Geoff Soutter).  added man page for it.
175 - added the --summary-first option suggested by Andi Kleen to
176   have the PatchSet summary information for all patchsets at
177   the head of the output, when multiple patchsets are given
178   to the -s option.
179 - added the all: target to Makefile.  (patch from Ben Elliston)
180 - use a single centralized cvsps.cache file per root/repository
181   this obviates the need to 'cvsps -u' in multiple checked out
182   trees of the same repository (patch adopted from Baruch Even)
183 - change the magic name TRUNK (for -b option) to HEAD to be 
184   consistent with cvs.  (patch from Henrik Nordstrom)
185 - when parsing 'cvs log' output, look for the exact strings
186   that separate the log entries and the files, instead of 
187   just the first 8 characters.  this allows a wider variety
188   of stuff to be in the log format (including actual patchsets).
189   Inspired by Andy Isaacson.
190 - added the -p option allowing patchset output to go into
191   individual files in a named directory.  Based on a patch
192   by Henrik Nordstrom.  This is a great idea.  Thanks Henrik.
194 1.3.3 (why isn't this 1.4 again?)
195 - added the 'memory reduction' patch from Baruch Even.  This patch
196   greatly reduces the memory footprint of CVSps against a large 
197   repository by using dynamically allocated buffers, and by using
198   a tree to hold "common" strings (to avoid having a thousand copies
199   of the string "1.1").  This patch also adds a new option '-t' which
200   displays some memory usage statistics at the top.
202 - added the 00-strip-revision.patch from Steven Tweedie which fixes
203   a parsing problem when there are locked files in the repository
205 - added the 'Tweedie Tweenie' patch from Steven Tweedie (01-stable-tree) 
206   which fixes a bug where interspersed commits could cause unstable 
207   tree behavior.  This would happen especially when multiple users commit 
208   at the same time to different parts of a large tree over a slow link.
210 - added the --norc option (based on a suggestion by Soren S. Jorvang) 
211   to handle cases where people have bad stuff in their .cvsrc which makes 
212   cvsps fail.  I could have added the '-f' unconditionally to the command
213   line for cvs when run under cvsps, but somehow that seemed dangerous.
215 1.3.2 (small feature release)
216 - added the 'multi-patchset' feature to the -s option, provided in its
217   entirety by Daiki Ueno <ueno@unixuser.org>
219 1.3.1 (bugfix release mostly)
220 - fix bug with updating cache (-u) having to do with matching new and old 
221   revisions
223 - fix timestamp_fuzz_factor bug where the fuzz was applied to loading
224   from cache by mistake.
226 - add a spec file (from Jan IVEN <Jan.Iven@cern.ch>)
228 - improve the parameterization of Makefile, and make things relocatable
229   (from many people, esp. Amitai Schlair <schmonz@schmonz.com>)
231 - fix strip_path_len calculation (again - I had munged the prior fix)
232   Jeffrey Ebert <ebert@sonicsinc.com>
236 - fix case where CVSROOT is initial substring of Repository when
237   creating strip_path variable.
239   Thanks to Jean-Michel Rouet <jean-michel.rouet@philips.com> for
240   this fix.
242 - fix case where a subdirectory has a different CVSROOT or Repository
243   path from the toplevel directory (happens when one project is checked
244   out inside another projects subdirectory).
246   Thanks to Philippe M. Chiasson <gozer@cpan.org> for the fix.
251 - Moved cache file location to CVS/ subdirectory.  This is where CVS keeps
252   it's meta-data, and putting the cache there keeps it out of the way of
253   other CVS operations. (thanks to Amitai Schlair for suggestion)
255 - Added manual page.  (thanks to Amitai Schlair for suggestion)
257 - Fixed the '-b' option to take a special branch name 'TRUNK' which
258   will restrict the output to patchsets made on the main trunk.
261 1.1 Initial public release.
262 -------- end of changelog ---------