CVShome.org
Wrappers (-t/-f)
|
Discussion:
If you are looking to use -t/-f wrappers, you want the
versions of CVS which contain this feature. Note that
this is only somewhat related to -k wrappers which are
the wrappers that relate to binary files. The -k
wrappers are found in all recent versions of CVS.
CVS's with -t/-f are available from CodeFab and
Apple.
|
Developer Issues:
Regarding specific issues, there have been a number of
submitted patches
(circa CVS 1.9). Many of them need miscellaneous
cleanups. Almost all of them could use a sanity.sh
testcase. There is a serious bug in -t/-f
wrappers in CVS 1.9.26. Here is Wilfredo Sanchez's version
of the client/server patch.
Here is a partial list of specific technical concerns.
-
Testsuite.
-
Wrappers combine two features -- filtering a file
through a script and treating a directory as a single
file. It is not clear that these belong as part of
the same feature. And whether there is some fairly
different way to solve the latter problem. For
example, see this patch concerning
problems calling dos2unix from wrappers. Another
manifestation is that CVS, with -t/-f, assumes that
the timestamp of a directory which is being wrapped
means something about whether the contents of that
directory are modified, and of course that is not a
good assumption.
-
In general, wrappers calls are scattered throughout
CVS without any particularly clear abstraction at
work. It just isn't clean. I suspect this may be
related to the previous item.
-
Client/server done in a clean way (no calls to an
external "tar" program hardcoded into CVS, for
example).
-
In terms of coding standards, checking for errors,
freedom from bugs, etc, most of the wrappers code
could use some work. Today, src/wrapper.c is better
than when it was first added to CVS, but I'd still
point to HACKING and the FIXME comments and look for
improvements.
-
The wrap_tocvs_process_file function needs to not use
sprintf (see the FIXME there). This can cause core
dumps if one specifies %s twice, but more seriously
it is probably a security hole. Likewise
wrap_fromcvs_process_file.
|
Return to The Information Page
List.