summaryrefslogtreecommitdiff
path: root/devel/monotone
diff options
context:
space:
mode:
authorjmmv <jmmv@pkgsrc.org>2006-04-10 17:45:51 +0000
committerjmmv <jmmv@pkgsrc.org>2006-04-10 17:45:51 +0000
commit98e046636e519ec0f7557ab2fa076b52f0b31828 (patch)
treec21aaa61cb0462cfc226797fec3d24a2bec2e541 /devel/monotone
parent51f2d54020f0a8132b187276e2e139f732f9cbb6 (diff)
downloadpkgsrc-98e046636e519ec0f7557ab2fa076b52f0b31828.tar.gz
Update to 0.26:
Sat Apr 8 19:33:35 PDT 2006 0.26 release. Major enhancements and internal rewrites. Please read these notes carefully, as significant changes are described. In particular, you _cannot_ upgrade to 0.26 without some attention to the migration, especially if you are working on a project with other people. See UPGRADE for details of this procedure. The changes are large enough that there were 3 pre-releases of this code; the changes that occurred in each can be seen below. However, for the convenience of those following releases, all changes since 0.25 will be summarized in these release notes. There is no need to read the pre-release notes individually. Major changes since 0.25: - The most user-visible change is that the default name of the monotone binary has changed to 'mtn'. So, for example, you would now run 'mtn checkout', 'mtn diff', 'mtn commit', etc., instead of 'monotone checkout', 'monotone diff', 'monotone commit'. - Similarly, the name of the workspace bookkeeping directory has changed from "MT" to "_MTN". As workspaces will generally be recreated when migrating to this release, this should not cause any problems. - Similarly, built-in attrs like 'execute' have had 'mtn:' prepended to their names. For example, executable files should now have the attr 'mtn:execute' set to 'true' on them. The migration code will automatically add this prefix; no user intervention is needed. - Similarly, the name of the ignore file has changed from '.mt-ignore' to '.mtn-ignore'. The migration code will automatically rename this file; no user intervention is needed. - Similarly, the recommended suffix for monotone db files is now '.mtn'. These changes are all purely cosmetic, and have no affect on functionality. - The most developer-visible change is that the data structure for representing trees has been completely replaced, and all related code rewritten. The new data structure is called a 'roster'. You don't really need to know this name; unless you are hacking on monotone or using various debug operations, you will never see a roster. It's mostly useful to know that when someone says something about 'roster-enabled monotone' or the like, they're referring to this body of new code. This change has a number of consequences: - The textual format for revisions and manifests changed. There is no conceptual change, they still contain the same information and work the same way. The formats were merely cleaned up to correct various problems experience showed us, and allow various enhancements now and in the future. However, this change means that a flag-day migration is required. See UPGRADE for details. - Directories are now first-class objects. You can add an empty directory, must drop a directory if you want it to go away, etc. - Attrs are now first-class objects. '.mt-attrs' no longer exists; attrs are now described directly in the manifest, and changes to them appear directly in revisions. The migration code will automatically convert existing .mt-attrs files to the new first-class attrs. If you have custom attrs, those may require special handling -- if this is the case, then the upgrader will tell you. - The merge code has been rewritten completely. The interface is currently the same (though this rewrite makes it easier to improve the interface going forward); if you have found merging in monotone to be easy in the past, then you will not notice anything different. If you have run into problems, then the new merger should make your life substantially simpler. It has full support for renames (of both directories and files), intelligent merging of attrs, improved handling of file content merges. Is the first known merger implementation based on a provably correct algorithm (the "multi-*-merge" algorithm), has exhaustive automated tests, and generally should give accurate, conservative merges. - The new code is generally faster, though not yet as fast as it could be. Netsync changes: - The default netsync port has changed 5253 to 4691. 4691 is our official IANA-assigned port. Please adjust firewalls appropriately. - Netsync code has also been largely reworked; new code should provide better opportunities for - The protocol is incompatible with earlier versions of monotone. This should not be a surprise, since the data it carries is also incompatible (see above)... New features: - New option --brief to 'annotate', gives somewhat more friendly output. - Several enhancements to log: - New option --next, to display descendent revisions (rather than ancestor revisions). - When 'log -r' is given an ambiguous selector, it now just logs all matching revisions, instead of requiring the selector be disambiguated. - New option --no-files. - New command 'show_conflicts', performs a dry run merge. - New command 'ls changed'. - 'rename' (and its alias 'mv') now accept a broader range of syntax: mtn rename foo some_dir -> renames foo to some_dir/foo mtn rename foo bar baz some_dir -> moves foo, bar, and baz to some_dir/foo, some_dir/bar, and some_dir/baz - New hook 'validate_commit_message', which may be used to verify that all commit messages meet arbitrary user-defined rules. - New option --log, to log monotone's output to a file. - New option 'drop --recursive', to remove a directory and its contents in one swoop. - The root dir may now be renamed. This is a somewhat exotic feature, but has some interesting uses related to splitting up or joining together projects; see new commands 'pivot_root', 'merge_into_dir'. Minor bug fixes: - 'serve' with no --bind argument should now work on systems where the C library has IPv6 support, but the kernel does not. - Stricter checking on the internal version of filenames to ensure that they are valid UTF-8. - If the database is in the workspace, then it is always ignored. - Monotone no longer errors out when using a French (fr) locale with a non-Unicode codeset. Other changes: - Packet commands ('rdata', 'fdata', etc.) have been moved to 'automate'. - Database storage now uses sqlite's blob support; database files should be ~1/4 smaller as a result. - Monotone now uses sqlite 3.3; this means that older versions of the command line client (e.g., an 'sqlite3' command built against sqlite version 3.2) cannot be used to poke at a monotone 0.26 database. Solution is to upgrade your sqlite3 program. Hopefully this is irrelevant to most users... - Translations updated, and 3 new translations added (de, it, sv). Reliability considerations: - This new codebase has received much less testing under real world conditions than the codebase used in 0.25, simply because it is newer. It has been in active use for monotone development since 8 January 2006, and only a small number of bugs have been found; all bugs found so far have been very minor, and none stood any danger of corrupting data. Furthermore, we are much more confident in the theoretical underpinnings of the new approach than the old, and the test suite attempts to exhaustively exercise all new code paths. However, none of this is or can be a substitute for real world experience. We advise caution in upgrading to this version of monotone, and suggest that (especially) those who upgrade aggressively should pay extra attention to the monotone mailing list before and after doing so. Wed Mar 29 05:20:10 PST 2006 0.26pre3 release. This release may be considered a "release candidate", in that while we need to write some tests and make sure some bugs are fixed, all features are in and we hope that no further bug fixes will be needed either. It is still a pre-release for testing. Do not package it. DO NOT USE THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL. But, PLEASE PLEASE TEST this release. There are some non-trivial changes since 0.26pre2, and this is your last chance! Major changes since 0.26pre2: - The name of the monotone binary has changed to 'mtn'. - Similarly, the name of the bookkeeping directory in workspaces has changed from 'MT' to '_MTN' (if you have an existing 0.26-line workspace, just rename the MT directory to _MTN). - Similarly, the name of the ignore file has changed from ".mt-ignore" to ".mtn-ignore". 'rosterify' will rename these automatically (if you have already rosterified, you get to rename them by hand). - Similarly, the recommended suffix for monotone db files is now ".mtn". - We now perform stricter checking to make sure that filenames are valid UTF-8. It is in principle possible that this stricter checking will cause histories that used to work to break; if you have non-ascii filenames, it is strongly recommended to test with this release. - Root dir renaming is now supported. See new commands 'pivot_root', 'merge_into_dir'. - As a side-effect, it is now possible to run 'rosterify' on histories in which two independent lines of history were merged. - The security fix released in 0.25.2 has been forward-ported to this release; this prevents some security exposure to people running monotone as a client on case-insensitive file systems. Minor change since 0.26pre2: - Database now uses sqlite blobs for storage; should be ~1/4 smaller. - New command: show_conflicts, does a dry-run merge. - New option 'drop --recursive', to remove a directory and all its contents in one swoop. - Changes to 'log': - New option --no-files - Including merges is again the default (i.e., it now acts like 0.25, and not like 0.26pre2). - When 'log -r' is given an ambiguous selector, it now just logs all matching revisions, instead of requiring the selector be disambiguated. - New option --log, to log monotone output to a file. - Netsync changes: - Was sending far too much data in some cases; now does not. - Several bugs that caused it to lock up fixed - Tweak to allow 'usher' proxy to transparently redirect based on client's protocol version, to ease migration between incompatible protocol versions. - Packet commands have been moved to 'automate'. - Fixed bugs in 'db kill_rev_locally', should no longer leave an inconsistent db behind. - Translation updates Other projects receiving notable work: - Monotone's "dumb server" support (repo distribution over HTTP/FTP/SFTP etc.) has been ported to 0.26, a first command line version written, etc. - The 'usher' netsync proxy used for hosting many databases on a single machine has received significant cleanups, and the 'webhost' project to provide a simple interface to shared monotone hosting providers has received even more work. Sat Feb 11 13:32:51 PST 2006 0.26pre2 release. Inching towards 0.26. If you are using 0.25 or earlier, then make sure to read the very important notes for 0.26pre1, below. In particular, like 0.26pre1, this is a pre-release for testing. Do not package it. DO NOT USE THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL. (Though, in fact, in a month of usage, only one bug has been found in the new history code, and it was both minor and harmless. It has additionally been fixed.) Database changes: - SQLite 3.3.3 has been imported. 3.3 introduces a new database format that is not backwards compatible with earlier 3.x releases. New databases will be created using this new format. Existing databases remain compatible, and are not converted automatically. Existing databases can be converted by performing a database vacuum ('monotone db execute vacuum'). New features: - New hook validate_commit_message -- use to verify that all commit messages meet arbitrary user-defined rules. UI improvements: - rename (and mv) commands now accept a broader range of syntax: monotone rename foo some_dir -> renames foo to some_dir/foo monotone rename foo bar baz some_dir -> moves foo, bar, and baz to some_dir/foo, some_dir/bar, and some_dir/baz - Print a warning if it looks like a user has made a quoting mistake on push/pull/sync/serve (windows cmd.exe has confusing rules here). - New command "ls changed". - New option "--next" to log, which displays descendents of the start revision. - Updating to an arbitrary revision now works again (as it did in 0.25 and earlier). This allows one to, for instance, switch a working copy to another head, or back up to an earlier version, while preserving uncommitted changes. - New option --brief to annotate, gives somewhat more friendly output. - Fixed bug that made ticker output from netsync inaccurate. - In 'log', --no-merges is now the default, use --merges to override. - If the database is in the working copy, then it is always ignored. Bugs: - 'serve' with no --bind should now work on systems where the C library has IPv6 support, but the kernel does not. - Compile fixes for GCC 4.1 pre-releases. Other: - Better detection when users have not run "rosterify", and more helpful suggestions on what to do in this case. - Documentation, translation, error message, etc. improvements. - Updates to contrib/mtbrowse.sh, simple shell-based monotone interface. - Updates to many other contrib/ files, mostly to maintain compatibility with monotone changes. Sun Jan 8 01:08:56 PST 2006 0.26pre1 release. Massive rewrites, released for shakedown. This release is also dedicated to Shweta Narayan. This release includes massive changes compared to 0.25. The core versioning code has all been replaced with a completely different mechanism. Data formats and the netsync protocol have changed in incompatible ways. Migration to 0.26pre1 or later is irreversible and requires a flag day for your project. See UPGRADE for details. Note that we DO NOT recommend upgrading at this time; see below. If you have been following the development list for the last few months, you may have heard about "rosters" -- this is the name for the new core data structure we use. While the code is completely different, the user experience should not be very different. You will never see a roster, unless you are debugging monotone itself; everything still revolves around revisions, manifests, and certs. While this new code has extensive tests, because of these incompatibilities, it has never been used for real work. The purpose of this release is to make a version available for the monotone developers to begin using for day-to-day work, to shake out bugs. Let's say that again in caps: THIS CODE IS PROBABLY BUGGY, DO NOT USE IT IN PRODUCTION UNLESS YOU WANT TO BE A DAREDEVIL. However, testing of this version with real databases is a good idea, and we'd very much appreciate hearing about your experiences. Some of the many changes: - New textual format for revisions and manifests; they remain conceptually the same, but have been tweaked. Manifests now use the same "basic_io" format as everything else in monotone, and contain entries for directories, revisions record file adds slightly differently and record directory adds for the first time, etc. Because of this format change, revision hashes are now different; converting rosters requires a full history rebuild and reissue of certs. - Directories are now first class. To get rid of a directory you must remove it; to create a directory, you must add it. You can add an empty directory. - Attrs are now first class. The .mt-attrs file is gone; attributes are now stored directly in the manifest. - New merge algorithm, based on "multi-*-merge", and more aggressive, less buggy merge ancestor selection code - Netsync's core has been largely rewritten. Code is now much clearer and more reliable, and now includes the ability to resume interrupted partial transfers. The netsync protocol version number has been bumped, and netsync now runs on the IANA-assigned port 4691 by default. - 100% fewer change_set.cc related bugs. 100% more roster.cc related bugs. But the idea of touching roster.cc does not terrify people.
Diffstat (limited to 'devel/monotone')
-rw-r--r--devel/monotone/Makefile4
-rw-r--r--devel/monotone/PLIST11
-rw-r--r--devel/monotone/distinfo8
3 files changed, 14 insertions, 9 deletions
diff --git a/devel/monotone/Makefile b/devel/monotone/Makefile
index 3d3995174b6..d455380621c 100644
--- a/devel/monotone/Makefile
+++ b/devel/monotone/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.22 2006/03/31 14:50:52 jlam Exp $
+# $NetBSD: Makefile,v 1.23 2006/04/10 17:45:51 jmmv Exp $
#
-DISTNAME= monotone-0.25.2
+DISTNAME= monotone-0.26
CATEGORIES= devel
MASTER_SITES= http://www.venge.net/monotone/downloads/
diff --git a/devel/monotone/PLIST b/devel/monotone/PLIST
index 2df0369982a..61840e5ddb2 100644
--- a/devel/monotone/PLIST
+++ b/devel/monotone/PLIST
@@ -1,7 +1,12 @@
-@comment $NetBSD: PLIST,v 1.5 2006/03/31 05:37:09 jlam Exp $
-bin/monotone
+@comment $NetBSD: PLIST,v 1.6 2006/04/10 17:45:51 jmmv Exp $
+bin/mtn
info/monotone.info
-man/man1/monotone.1
+man/man1/mtn.1
+share/doc/monotone/monotone.html
+${PKGLOCALEDIR}/locale/de/LC_MESSAGES/monotone.mo
${PKGLOCALEDIR}/locale/fr/LC_MESSAGES/monotone.mo
+${PKGLOCALEDIR}/locale/it/LC_MESSAGES/monotone.mo
${PKGLOCALEDIR}/locale/ja/LC_MESSAGES/monotone.mo
${PKGLOCALEDIR}/locale/pt_BR/LC_MESSAGES/monotone.mo
+${PKGLOCALEDIR}/locale/sv/LC_MESSAGES/monotone.mo
+@dirrm share/doc/monotone
diff --git a/devel/monotone/distinfo b/devel/monotone/distinfo
index bffa32f6dc5..444f61960f6 100644
--- a/devel/monotone/distinfo
+++ b/devel/monotone/distinfo
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.13 2006/03/09 20:30:16 jmmv Exp $
+$NetBSD: distinfo,v 1.14 2006/04/10 17:45:51 jmmv Exp $
-SHA1 (monotone-0.25.2.tar.gz) = 84eb3490c261728b0e3d4ece7eb3fb59cd8fe327
-RMD160 (monotone-0.25.2.tar.gz) = 91a69763039c10ff15421c92ee86609c2a5ec739
-Size (monotone-0.25.2.tar.gz) = 5427435 bytes
+SHA1 (monotone-0.26.tar.gz) = 5442ad47b010c9f4e2a55429d0e4a7da449e8e52
+RMD160 (monotone-0.26.tar.gz) = 0672b7a60392764a46ecc269a2d83a4f6abb4f59
+Size (monotone-0.26.tar.gz) = 5630955 bytes