bundle Change History

2.31 (2008-10-05)

Report chown and chmod of directories in -n and -c modes as chown and chmod, not just a generic update. Don't attempt to diff the source and destination if no source was provided, such as when updating the timestamps of directories.

Lines changed: +4 -4

2.30 (2008-09-28)

Some general coding style updates. Use all caps for global variables, and use newer code for printing out the version number with -v so that it goes to standard output and includes the date.

Lines changed: +132 -129

2.29 (2006-03-31)

Update copyright dates.

Lines changed: +4 -4

2.28 (2006-03-31)

Add the -C option to change directories before running the bundle. Patch from Huaqing Zheng.

Lines changed: +13 -1

2.27 (2004-06-07)

Clarify the documentation of the backout bundle and of the rename function.

Lines changed: +21 -11

2.26 (2003-11-25)

Improve the documentation of -c, update copyright dates, and change to a four-column indent for examples in the documentation.

Lines changed: +35 -33

2.25 (2003-10-09)

Add a -c option to show a diff between the existing files and the files that will be installed.

Lines changed: +52 -5

2.24 (2003-10-08)

Rewrap comments, change section headings to 78 #s, and change two blank lines before sections to one blank line to match the current coding standards.

Lines changed: +121 -137

2.23 (2002-11-18)

The last change caused chown to think that it always had to do something when one argument was -1. Fixed.

Lines changed: +5 -4

2.22 (2002-08-02)

Allow owner and group to be set to -1, indicating that no change should be made to that portion of the file's ownership. Affects the file and dir commands.

Lines changed: +40 -15

2.21 (2000-03-26)

Fix variable interpolation so that two variable references next to each other are correctly interpolated. Fix an error message when trying to apply "file" to a special device.

Lines changed: +5 -4

2.20 (2000-01-08)

dir directives that had to create a directory weren't running associated system commands. Fixed.

Lines changed: +3 -2

2.19 (1999-02-17)

Unbackwhacking of single quotes and backslashes in single-quoted strings wasn't done globally, so it was only getting the first one.

Lines changed: +2 -2

2.18 (1999-01-07)

Include a better variable interpolation regex for Perl versions 5.005 and later that never does double-interpolation. Also add an example in the NOTES section when talking about how to format system="" commands on bundle lines.

Lines changed: +40 -5

2.17 (1998-12-16)

Added the addline command, including documentation, and modified the documentation of append to explain the differences. Cleaned up some of the way in which append works to avoid an unnecessary seek. Added some preliminary code to the implementation of dir to correctly honor mode, but this code really should be rolled back into mkdir_chain at some point. Reformatted the example in the documentation, added a large notes section on some stylistic things, mentioned a couple more bugs, and corrected the origin of synctree in the AUTHORS section.

Lines changed: +186 -65

2.16 (1998-09-20)

Set the umask to 0 around any call to symlink(2), since although permissions shouldn't matter some platforms pay attention to umask when creating symlinks and it looks better this way. Also added a clarification that the dir command creates directories recursively, a note that directories are created if nonexistent for any bundle command that creates things, and a note that there are no spaces allowed around the = sign in a variable setting.

Lines changed: +21 -7

2.15 (1998-09-11)

-n wasn't being honored by dir directives if an explicit atime or mtime setting was present.

Lines changed: +2 -1

2.14 (1998-08-27)

Fixed the error checking in filter to cope with $_ having been set to the empty string, fixed the idempotency check for rmdir (the stat is *supposed* to fail), modified the routine that searches for bundle files to only look for plain files (fixing a long-standing bug that can result from bundle being run on directories), and fixed a few comments.

Lines changed: +13 -10

2.13 (1998-08-13)

Fixed a bug with --backup and the file directive; we should now generate correct backout lines and do the right thing when file is installing a new file and --backup is given. We also now generate bundles that will apply when file updates an existing file and --backup is given, and document an existing problem with them. Fixed a bug with reporting action taken when resetting the mode due to a file command, and fixed handling of - on the command line (it now means read from stdin like it should).

Lines changed: +34 -14

2.12 (1998-08-12)

Fixed precedence bug that broke -b with file directives.

Lines changed: +2 -2

2.11 (1998-06-28)

dir should check the attributes of an existing directory, if one already exists, and set them to the desired values if values have been given as desireable.

Lines changed: +49 -10

2.10 (1998-06-20)

Added new commands append (append text to the end of a file, checking to see if it already ends in that text) and filter (run arbitrary Perl code on a file a line at a time, replacing it with the filtered copy if anything is changed). Single quote parsing changed so that \ only escapes \ and ' (like Perl) and empty strings are allowed. atime and mtime variables added, which control what timestamps are set on files or directories created by file, filexists, or dir. atime and mtime settings are generated for rmdir backout code and preserved in file backups. The backout output was incorrect in multiple places, fixed. The overloaded core commands now return status, and error checking is better and more accurate in several places. System commands aren't run if chmod or chown calls fail when processing those commands. mkdir_chain calls are now also checked for success in a few places. save_file now supports backups via copying, needed for append. It also appends a random number to the backup file name, which was made a bit shorter, and does more checks to see if it already exists. Fixes to name2uid and name2gid so that a user or group of the empty string is identical to -1. return undef replaced with just return in many places. Fixed an obvious bug in undo generation with echo. Documentation changed to reflect all of the above and to add BUGS and WARNINGS sections to document potential problems.

Lines changed: +430 -132

2.9 (1998-06-18)

Reworked both name2uid and name2gid to allow for negative UID/GIDs, to allow undef to be passed in and handled correctly, and to return undef if given -1 so that we can get the "don't change this" semantics right for chown. Single quotes now supported by the parser with the expected semantics, and used instead of double quotes to escape newlines. Undo generation changed to escape single quotes. Allowed undefining of a variable by setting it to nothing. chmod now supports positive or negative node masks (+1111 or -1111) as well as absolute modes. chown handles -1 and undef values correctly. chown and chmod are now better at dealing with nonexistent files. If no bundle file (or the file name "-") is given on the command line, read bundle commands from stdin instead. Library searching for bundles if .b was given on the command line streamlined. Various documentation tweaks, including information for the above changes, clarification of the exact effects of the file directive, examples for chmod and chown, and a cleanup of the example bundle.

Lines changed: +132 -58

2.8 (1998-04-13)

Variables set on the command line override variables set in bundles (but force and younger set in the bundle still override -f and -y on the command line), check to make sure they don't set both force and younger inside the bundle, cache every directory we've said we have to make in -n mode and only report it once so that we don't spew, filexists should bitch if the target file exists but isn't a regular file, filexists wasn't chowning or chmoding like it was supposed to and wasn't generating backout information correctly if it failed, symlink was reporting necessary actions in the wrong order.

Lines changed: +42 -13

2.7 (1998-04-13)

Added a -D option to allow defining of variables on the command line (and had fun playing with Getopt::Long until it would let me do that), fixed a couple of bugs in recognizing reserved variables, die immediately if we see an unknown variable, fixed set()'s error reporting so that it would make sense with -D, reworked a bunch of the mkdir_chain() code so that it would work correctly with relative paths.

Lines changed: +30 -14

2.6 (1998-03-27)

The way commands were being run in command() was broken and a nonexistent sub was being called. Both fixed.

Lines changed: +3 -3

2.5 (1998-03-11)

In do_file(), we blew away our stat buffer with mkdir_chain and therefore the report() action was wrong. Fixed.

Lines changed: +4 -3

2.4 (1998-03-11)

Fixed variable interpolation (again). Before, bundle would get confused by things like ${VAR or $VAR}. Now it won't.

Lines changed: +3 -2

2.3 (1998-03-11)

Added the ability to save backup and undo information (the --backup flag), necessitating saving backup copies of files if required and saving mode and ownership information in the undo bundle commands. Added extensive comments about some major gotchas in the code, at the beginning of the file. Fixed the parsing and interpolation code to warn in the event of unknown variables, to prevent interpolation of special variables, and to correctly handle lines with embedded newlines (although it's hardish to get them into a string). Added a trailing backslash to the output when a directory is created. Made sure chown is done before chmod. Moved all mkdir_chain()s before the bailout if we're not doing anything, so that the actions will be printed in the right order.

Lines changed: +211 -54

2.2 (1998-03-11)

Added dir, rmdir, and filexists directives, and tweaked the documentation accordingly. Also removed the now-unneeded and useless --noforce and --noyounger options, fixed bundle to exit correctly on unknown options, fixed chown to allow changing either the uid or gid in isolation, cleaned up mkdir_chain to honor umask, and tweaked some comments.

Lines changed: +118 -29

2.1 (1998-03-10)

General code cleanup, more things broken off into functions, lots of general logic cleanup and code flow changes. --owner and --permissions removed (which dramatically simplified a lot of things). The set command was removed. Variables have been added, and generalized to encompass both the special variables and general user-settable variables, and to allow force and younger to be set that way. We now override various core builtins for error reporting and so that chown will work correctly if the UID isn't being changed. The documentation has also been extensively modified and cleaned up.

Lines changed: +330 -336

2.0 (1998-02-17)

Complete rewrite from basic principles, although with the use of the existing code as examples. Adds the new chown, chmod, rename, delete, and set commands, reworks the entire code flow, reworks the entire implementation structure, modes and ownership is no longer attempted on symlinks.

Lines changed: +983 -761

1.1 (1996-03-31)

/usr/leland changed to /usr/pubsw, a fatal error changed to a warning.

Lines changed: +7 -7

1.0 (1994-07-21)

Initial revision

Generated by cvs2xhtml 1.13 on 2013-07-01