-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathNEWS
2471 lines (1935 loc) · 105 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Fri Dec 26 22:08:00 UTC 2008
0.42 release.
Changes
- The output of 'automate show_conflicts' has been changed; a
default resolution for file content conflicts and user resolutions
for other conflict types has been added. 'directory_loop_created'
changed to 'directory_loop'.
- The French, Brazilian-Portuguese and Japanese translations were
outdated and thus have been removed from the distribution. In case
you care about them and want them back, drop us a note at
monotone-devel@nongnu.org.
Bugs fixed
- 'mtn db kill_rev_locally' did not update the inodeprint
cache when executed from a workspace on which the
revision's changes where applied.
- Some recent performance issues have been corrected:
* since 0.40, there is much more use of hex encoding/decoding.
These functions have been sped up considerably.
* since 0.40, every command in an 'automate stdio' session
would reinitialize the database. This was rather slow, so
monotone will now keep the database open between commands.
- The Lua-based contributed Monotone extension introduced in
0.38 haven't been added to the tarball; this has been fixed.
- Monotone died if _MTN/options contained an empty / not-existing
'keydir' entry. This has been fixed. Also, invalid options are now
better detected and give a more useful error message.
- Monotone crashed if it was called with more than 2048 command
line arguments. This has been fixed.
- If vim is used as merger, it no longer prompts the user for an
enter key press.
- Decoding errors f.e. through to garbage from the network no longer
results in informative failures, but in warning. This was made
possible by introducing the concept of origin-aware sanity checks.
- Monotone crashed if it was called with nested wildcards such as
'a.{i.{x,y},j}'. This has been fixed.
- The standard implementation of the 'ignore_file' hook now accepts
windows and unix line endings in .mtn-ignore files.
New features
- New 'mtn ls duplicates' command which lets you list
duplicated files in a given revision or the workspace.
- New option --no-workspace, to make monotone ignore any
workspace it might have been run in.
- New command group 'mtn conflicts *'; provides asynchronous
conflict resolutions for merge and propagate.
- New 'automate file_merge' command which runs the internal line
merger on two files from two revisions and outputs the result.
- New 'automate lua' command with which lua functions, like
monotone hooks, can be called over automate. This is particularily
useful to get user defaults, like ignorable files, branch keys and
passwords, which are managed through one or more monotonerc files.
- New 'automate read_packets' command which reads data packets like
public keys similar to 'mtn read'.
- 'merge' and 'propagate' accept user commit messages; the
'merge rev rev' or 'propagate branch branch' message will be
prefixed to the user message. --no-prefix removes the prefix.
Internal
- Update Botan to 1.7.12.
Wed Sep 3 21:13:18 UTC 2008
0.41 release.
Changes
- 'mtn clone' now takes a branch argument rather than a branch
option which is more what people expect given the fact that
mtn push/pull/sync do not use a branch option either.
- 'mtn automate inventory' will show the birth revision for
any file that has been committed.
Bugs fixed
- If the options '--db' or '--keydir' were previously
specified for a command which was executed inside a
workspace and one or both option arguments were invalid
(f.e. invalid paths), they were still written to
_MTN/options of the particular workspace. This lead to
errors on any subsequent command which used these
options. This bug is fixed in so far that basic file type
checks are applied on both options, so its no longer
possible to set non-existing paths accidentally or use a
path to a directory as option argument for '--db'.
- If a key clash occurs on a netsync operation, i.e. two
different keys with the same key id are encountered, mtn now
fails cleanly and provides further guidance how to proceed.
- It was previously not possible to clone a branch / database
anonymously; this has been fixed.
- If the client tries to use an unknown key, try to fall back
to anonymous pull instead of failing immediately.
- 'mtn automate identify' was broken in 0.40 when used over
stdio, i.e. the output of the command did not get into the
right output channel; this has been fixed.
- Monotone would produce a warning if executed from the root
directory of a Windows drive; this has been fixed.
- The 'note_commit' hook now returns the new revision id
hex-encoded again - the bug was introduced in 0.40.
New features
- New 'mtn suspend' command which lets you mark certain
revisions and thus whole branches as discontinued
("suspended") by attaching a special suspend cert to the
revision. All relevant mtn commands (f.e. mtn heads,
mtn ls branches) honor this cert by default. To ignore it,
simply add '--ignore-suspend-certs' to your command line.
Suspended revisions can have children, which are in no
way affected by the cert of their parent, i.e. suspended
development lines or branches can simply be "unsuspended"
by committing to them.
This feature was already added in monotone 0.37, but was
forgotten to be mentioned in NEWS back then.
- New 'get_default_command_options' lua hook which lets you
specify default options for a given, triggered command.
Useful f.e. if you always want to have your 'mtn add'
command executed with '-R' / '--recursive'.
- Add 'automate show_conflicts' command.
- Add 'automate get_workspace_root' command.
- Add Lua hooks 'note_netsync_revision_sent',
'note_netsync_cert_sent' and 'note_netsync_pubkey_sent'.
Fri Apr 11 22:50:44 UTC 2008
0.40 release.
Changes
- The vim merger has been improved and now uses diff3 to merge
non-conflict changes automatically before executing vimdiff.
- Values used with the --depth option used to control recursion with
node and path restrictions have changed. Using --depth=0 now means
exactly the specified directories and *not* their children. Using
--depth=1 now means the specified directories and their immediate
children. Previously --depth=0 included children and --depth=1
included grandchildren and it was not possible to exclude children
using --depth. The simple fix for anyone using --depth is to add 1 to
the values they are using.
- Document that ssh: and file: sync transports are not supported on
native Win32.
Bugs fixed
- `commit' now uses keydir specified in _MTN/options
- duplicate name conflicts now show a proper error message, even if
a parent directory got renamed as well. In that case, the error
message now shows both names for the directory and the offending
file name.
New features
- The bare parent selector 'p:' can now be used in a workspace to
query the parent(s) of the workspace' base revision. This is
equivalent to "mtn au select p:`mtn au get_base_workspace_revision`".
- push, pull, and sync can be run with a single argument, which looks
like
mtn://hostname?include_pattern/-exclude_pattern
or
mtn://hostname?include=include_pattern/exclude=exclude_pattern
Internal
- Update Botan to 1.7.4.
- Usage of the internal app_state object has been reduced, objects
are better encapsulated now. The database interface has been
enhanced to ease reduction of locking contention in the future.
- Merged the two indexes on revision_certs into a single one.
- The database schema has been changed so that it now stores
binary SHA1 hashes rather than their hexadecimal encoding,
in most places where these are used. This reduces the
database size and speeds up operations a little.
Users who like to fiddle with the database directly are
advised to use the sqlite functions hex() and quote() to
print columns that store hashes (including IDs), and the
hexadecimal literal notation x'DEADBEEF' to input them.
- Binary SHA1 hashes are also used for most in-memory
processing, avoiding conversions and saving memory.
Mon Feb 25 15:55:36 UTC 2008
0.39 release.
Changes
- 'mtn di' is now an alias for 'mtn diff'.
- 'automate db_set' has been renamed to 'automate set_db_variable'.
- 'automate db_get' has been replaced by 'automate get_db_variables'
which returns all database variables similar to 'list vars' in
basic_io format, optionally restricted by domain.
- The REVID argument of 'automate get_revision' is now mandatory;
to retrieve the current workspace revision, use the new command
'automate get_current_revision'
- messages describing conflicts from all of the various merge commands
have been reworked and should be much more informative.
- mtn show_conflicts now outputs much more detailed and descriptive
messages, however it may report content conflicts that will be
resolved automatically by the line merger.
- The internal copy of PCRE has been updated to version 7.6.
If you use the '--with-system-pcre' configure switch, it
will insist on at least this version.
- "emacs" has been removed from the list of dumb terminal types;
tickers should now default to --ticker=count with emacs terminals
- extensive section on merge conflicts and ways to resolve them
added to the manual.
Bugs fixed
- for changes near the beginning of a file, mtn's unified diff
output sometimes contained too many leading context lines.
- the path handling of 'mtn revert' was improved and fixed two bugs:
now a restricted revert on a node "dir1/file1" reverts only the
content changes in "file1", but leaves renames of any of its
ancestor nodes untouched; furthermore, if "dir0/" was renamed to
"dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the
proper place ("dir1/") and leaves no missing files around because
of the non-existing "dir0/".
- a few changes needed to build with gcc 4.3.
New features
- 'automate drop_db_variables' which drops one database variable
(like the 'unset' command) or all variables within a given domain.
- 'automate inventory' now accepts the options '--no-ignored',
'--no-unknown', '--no-unchanged' and '--no-corresponding-renames'.
Please consult the monotone documentation for more information about
these new options.
In addition, 'automate inventory' no longer recurses into ignored
directories. The typical case of listing files that need attention
now runs at least four times faster.
- 'automate get_current_revision' which outputs the revision text of
changes in the current workspace
Wed Dec 12 21:21:15 UTC 2007
0.38 release.
Changes
- mtn log now prints a single dot for a project's root
directory instead of an empty string.
- mtn now warns if changes to a file will be ignored because
the file has been deleted on one side of a merge.
- mtn now errors if your chosen private key doesn't match the public
key of the same name in your database.
- mtn now checks for your key before a merge action takes place to
ensure that any manually merged file isn't lost in an error case
Bugs fixed
- a bug introduced in 0.37 prevented an external merger from being
executed unless the MTN_MERGE environment variable was set
- mtn read successfully reads revision data, and cert packets again
- mtn consistently supports certs with empty values
(fixed 'ls certs' and 'read')
Internal
- Update Botan to 1.7.2.
- Moved the gzip implementation out of the Botan directory.
Other
- Added the scripts of the following Lua-based contributed
Monotone extension commands to contrib/command/:
"mtn base", "mtn fuse", "mtn revision", "mtn conflicts".
- Added a hooks version of the contributed ciabot script,
contrib/ciabot_monotone_hookversion.lua
- The monotone manual is now licensed under the GPL rather than
the GFDL.
Fri Oct 25 22:35:33 UTC 2007
0.37 release.
Changes
- mtn db kill_rev_locally now checks for an existing workspace
before the revision is killed and tries to apply the changes
of this particular revision back to the workspace to allow
easy re-committing afterwards
- the "--brief" switch for mtn annotate has been renamed to
"--revs-only" for clarity
- mtn help now lists the commands (and their aliases) available
within a group, so its easier to get an overview which commands
are available at all
- the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua)
was improved. It now accepts a MTN_MERGE_DIFFUTILS environment
variable which can be used to control its behaviour
through comma-separated "key[=value]" entries. Currently
supported entries are "partial" for doing a partial
batch/non-modal 3-way merge conflict "resolution" which uses
embedded content conflict markers and "diff3opts=[...]" and
"sdiffopts=[...]" for passing arbitrary options to the used
"diff3" and "sdiff" tools. When used in combination with "mtn
merge_into_workspace" this way one especially can achieve a
CVS/SVN style non-modal workspace-based merging.
- There is a new revision selector: "p:REV" selects the
parent(s) of revision REV. For example, if a revision has
one parent,
mtn diff -r p:REV -r REV
will show the changes made in that revision.
- Monotone now uses the Perl-Compatible Regular Expression
(PCRE) library for all regular expressions, instead of the
boost::regex library. This means that external Boost
libraries are no longer required to build or use Monotone.
If building from source, you will still need the Boost headers
available somewhere. See INSTALL for details.
PCRE's syntax for regular expressions is a superset of
boost::regex's syntax; it is unlikely that any existing
.mtn-ignore files or other user uses of regexps will break.
The manual now contains detailed documentation of the regexp
syntax, borrowed from PCRE itself.
- the format of "mtn automate inventory" has changed to basic_io.
This fixes a couple of corner cases where the old format
returned wrong information and introduces new capabilities like
restricted output, recognized attribute changes, and more.
For a complete overview on the new format, please take a look
in the appropriate manual section.
Bugs fixed
- mtn automate heads called without a branch argument now properly
returns the head revisions of the workspace's branch if called
over mtn automate stdio
- mtn commit no longer crashes if it creates a revision whose
roster already exists, i.e. was left behind by the command
`mtn db kill_rev_locally REV` (savannah #18990)
Documentation changes
- the documentation of the "--revs-only" (formerly "--brief")
switch for the annotate command didn't match its actual
behavior, this has been fixed
- documentation for the "ssh_agent_add" command was missing
and has been added
Other
- contrib/usher.cc has been removed. Please use the
net.venge.monotone.contrib.usher branch instead.
Internal
- Update SQLite to 3.4.1.
- Update Lua to 5.1.2 plus latest bug fixes.
- Update Botan to 1.5.10.
- Internal use of regular expressions has been almost eliminated.
(Regular expressions are still used for .mtn-ignore and the
--show-encloser feature of mtn diff, and are still available to
Lua hooks.)
Fri Aug 3 06:08:36 UTC 2007
0.36 release.
Changes
- The help command is now able to show documentation on subcommands
(such as 'attr set').
- The help command now shows a brief abstract of each command,
instead of only listing their names.
- The command `list changed` now outputs the new path of any
renamed item making it easier to copy and paste these paths
for external program usage.
- `automate attributes` has been renamed to `automate get_attributes`,
also a bug has been fixed there so resurrected attributes are now
properly outputted as "new" and not "changed".
New features
- Two new commands to set and drop attributes over automate:
`automate set_attribute` and `automate drop_attribute`
- There is a new function available to the lua hooks,
'server_request_sync(what, address, include, exclude)', which will
initate a netsync connection to the server at "address", with the
given include and exclude patterns, and will sync, push, or pull,
as given in the "what" argument. If called from a monotone instance
which is not acting as a server, this function will do nothing.
- There is a new hook available,
'get_netsync_key(server, include, exclude)', which is called to
determine which key to use for netsync operations. Note that the
server calls this once at startup with the address it is listening
on, "*", and "" as arguments, rather than for each connection.
Other
- Giving the --confdir argument will automatically set the key store
directory to keys/ under that directory, unless --keydir is also
given. This is a bugfix.
- Fixed a regression in 0.35 that resulted in some databases
becoming significantly larger when storing new revisions. Existing
databases with this problem can be fixed by pulling into a fresh
database using 0.36.
- contrib/lua-mode.el, a Lua mode for GNU emacs.
- contrib/monotone-buildbot-notification.lua, a netsync hook to have a
server notify a buildbot when new changes have arrived. Useful for
anyone who uses a buildbot with monotone as source.
- contrib/monotone-cluster-push.lua, a netsync hook script to have
arriving changes be forwarded to other servers automatically. It
uses the new internal lua function 'server_request_sync'.
- contrib/mtn_makepermissions, a simple script to create
read-permissions and write-permissions from files in the directories
read-permissions.d and write-permissions.d, Debian style.
- contrib/Monotone.pm, a first attempt to write a Perl module to
interface with 'monotone automate stdio'.
- contrib/monotone-import.pl has been removed since monotone now has
an internal import command.
Internal
- Commands are now defined as a tree of commands instead of a
plain list, which allows the help system to look up information
of a command at an level in the tree.
- The command class, the automate class and all the associated
macros have been cleaned up.
- All C++ files now depend on base.hh, which includes the few things
that are used virtually everywhere. 'make distcheck' will check for
the presence of base.hh in all source files and will protest if
it's not there. This is explained further in HACKING.
- Update the internal SQLite to version 3.4.0.
- Updated Visual C building system, which now also builds the test
programs. The script visualc/runtests.bat can be used to run the
tests.
- Monotone can now be built successfully with Boost 1.34. Older
versions of monotone would sometimes seem to work depending on
the compiler used, but would have bugs in path normalization.
- Monotone now requires Boost 1.33 or later.
- The Boost filesystem library is no longer required.
- The Boost unit test system is no longer required.
Mon May 7 14:08:44 UTC 2007
0.35 release.
Changes
- 'mkdir --no-respect-ignore PATH' now really skips any
ignore directives from .mtn-ignore or Lua hooks
- Private keys are now stored more safely, using file
permissions.
- The editable log summary (what you get in an editor when
committing without -m) now includes information about which
branch the commit applies to.
- The status command and the editable log summary now show
the same details about the change.
New features
- 'automate identify', an automate version of 'mtn identify'.
- 'automate roots', prints the roots of the revision graph,
i.e. all revisions that have no parents.
Other
- You can't drop the workspace root any more.
Internal
- Update the internal Lua to version 5.1.2.
- Added build files for Mac OS X.
- Update the internal SQLite to version 3.3.17.
- Code cleanup of app_state.
Sun Apr 1 08:23:34 UTC 2007
0.34 release.
The internal data format has changed with this release;
migration is straight-forward. To upgrade your databases,
you must run:
$ mtn -d mydb.mtn db migrate
All of these operations are completely lossless, and 0.34
remains compatible with earlier versions all the way back
to 0.26 with regards to netsync.
Changes
- Text is now output at best of the environment's possibilities,
transliterating them or substituting '?' as needed.
- The lua hook get_author() now takes a second argument, a
key identity, in case someone wants to create an author based
on that and not only the branch name.
- The command 'chkeypass' became 'passphrase'.
- The commands 'drop', 'rename' and 'pivot_root' default to
always perform the operation in the file system as well.
They do not accept '--execute' any more, but will instead
take '--bookkeep-only' in case the user only wants to affect
bookkeeping files.
New features
- New hook note_mtn_startup(), which is called when monotone is
started.
- New Lua support function spawn_pipe(), which is used to run
a command and get back its standard input and standard output
file handles as well as the pid.
- Monotone will automatically add a monotone key in a resident
ssh-agent when it's first used, and will then use ssh-agent
for all subsequent signing. Thus, you will only need to give
the password once in one session.
- New command 'ssh_agent_export' to export a monotone key into
an SSH key.
- New command 'ssh_agent_add' to add a monotone key explicitly
to a resident ssh-agent.
- New command 'clone' that combines 'pull' and 'checkout'.
- 'automate put_file' and 'automate put_revision' stores a file
and a revision in the database.
- 'automate cert', an automate version of 'mtn cert'.
- 'automate db_set', an automate version of 'mtn set'.
- 'automate db_get', an automate version of 'mtn ls vars' with
a twist.
Other
- contrib/ciabot_monotone_hookversion.py now uses a real
basic_io parser and thus should send more precise
information to the cia server. Furthermore, it has become
more careful with creating zombies.
- contrib/monotone-log-of-pulled-revs-hook.lua, a lua hook
to display information about incoming revisions.
- contrib/monotone-mirror-postaction-push.sh, a post action
script that should be executed by contrib/monotone-mirror.sh
to automatically push data on to other servers.
- contrib/monotone-mirror.lua, a lua hook that executes
contrib/monotone-mirror.sh after any netsync session is done.
- contrib/monotone-mirror.sh now takes keydir and keyid
configuration and has better protection against overlapping
duplicate runs.
- contrib/monotone.bash_completion now handles signals.
- contrib/monotone.el now includes a commit button.
Internal
- Date and time display has now been reimplemented internally
to avoid Boost more. This means that we have lowered our
dependency from Boost 1.33.0 to 1.32.0.
- Lots of code cleanup.
- The heights cache got an index, making the processing faster.
- Update the internal SQLite to version 3.3.13.
- Algorithm to find uncommon ancestors has been rewritten, so
'pull' and 'regenerate_caches' should be faster.
Wed Feb 28 22:02:43 UTC 2007
0.33 release.
The internal data format has changed with this release;
migration is straight-forward. To upgrade your databases,
you must run:
$ mtn -d mydb.mtn db migrate
All of these operations are completely lossless, and 0.33
remains compatible with earlier versions with regards to
netsync.
Changes
- "mtn ls unknown" no longer recurses into unknown directories.
- update will fail rather than clobbering unversioned files
that exist in the workspace.
- update will detect directories with unversioned files before
attempting to drop them and will refuse to run rather than
corrupting the workspace. such unversioned files must be
removed manually.
- the character set and line separator conversion hooks
(get_system_linesep, get_charset_conv and get_linesep_conv)
have been removed. Similar functionality (probably based on
file type attributes) is planned and will be added in a future
release.
- update will switch to the branch of a given revision if it
differs from the current workspace branch.
- add will now accept combinations of --unknown, --recursive and
--no-respect-ignore.
- import now imports unknown directory trees properly.
- use SQLite 3.3.12.
- schema migrator rebuilt and will now properly detect and report
if the database used is created by a newer monotone than the one
currently used.
- removed the man page mtn.1, as it hadn't been updated for a long
time.
New features
- "mtn merge_into_workspace" (still to be documented). This command
will allow you to review and fix up a merge in your workspace
before committing it to the repository. However, the conflict
resolution interface remains the same as that of the 'merge'
command for now (i.e. monotone will invoke your specified merge
tool on all files with conflicts and you must resolve them as they
are presented). Work on in-workspace conflict presentation and
resolution is planned for the future.
- "mtn log" will now print an ASCII revision graph alongside the
usual log text.
Speed improvements
- "mtn annotate file" should run even faster now. it exploits
the fact that we store deltas of rosters. by peeking at
these deltas, it can avoid reconstruction of whole rosters
in many cases.
Other
- contrib/monotone-mirror.sh and
contrib/monotone-mirror-postaction-update.sh, two scripts
to mirror and update directories automatically.
- contrib/monotone-run-script-post-netsync.lua, to automatically
update a directory as soon as new revisions or certs arrive for
a given branch.
- contrib/monotone.bash_completion had some improvemens.
- contrib/monotone.el had some improvements.
Internal
- Internally, the concept of "projects" has been introduced. It
currently doesn't mean anything, but will be used later, with
policy branches and similar.
Wed Dec 27 09:57:48 UTC 2006
0.32 release.
Changes
- "mtn serve" no longer takes patterns on the command line.
Use the permissions hooks instead.
- the name of the option that denoted the revision from which
"mtn log" should start logging was renamed from "--revision"
to "--from"
- author selectors no longer have implicit wildcarding
- if you manually add entries to MTN/log while you are
working, in preparation for an eventual commit, you will now
be required to remove a "magic" template line from the file
before the commit will succeed. This, like the test for an
empty log file, helps to prevent accidents.
- the "db regenerate_caches" migration command replaces the
previous "db regenerate_rosters", generalising the task of
rebuilding or generating cached data that may be added
across an upgrade. Like "db migrate", which upgrades the
database schema, this command fills in the data for new
features. In this release, as well as rosters, it also adds
"heights" information used to speed up topology operations.
Speed improvements
- "mtn annotate file" and "mtn log file" are generally much
faster now, dependant on the number of revisions that
changed the file. Both commands as well as "mtn automate
toposort" make use of data called "heights" caching the
topological order of all revisions. In order to create and
use this data, the following must be run once for each db
after upgrading:
$ mtn -d mydb.mtn db regenerate_caches
New features
- "mtn automate content_diff"
- "mtn automate get_file_of" (same as get_file, but expects
a file path and optionally a revision)
- "mtn import" command
- "mtn log --to"
- netsync_note_* hooks are given much more information,
inlcuding a http/smtp/etc style status code
- includedirpattern(dir, fileglob) function for hooks
Bugs fixed
- bug in "automate stdio" that would result in monotone
garbling its input in some circumstances fixed
- "mtn annotate file" and "mtn log file" are generally much
faster now, dependant on the number of revisions that
changed the file. Both commands as well as "mtn automate
toposort" make use of data called "heights" caching the
topological order of all revisions.
- spawn_redirected hook function now understands a blank
filename to mean not to redirect that stream
- "mtn log" is now in proper topological order, also due to
the use of cached "heights" data
- reset options between "automate stdio" commands
- another compile fix for gcc3
- bug in localization code where option strings where not
always properly translated
Other
- botan library upgraded to 1.6.0
- accommodate changes in boost 1.34
- documentation for "mtn automate get_option"
- notes/ directory
Sat Nov 11 11:06:44 PST 2006
0.31 release. Code cleanups and bug fixes.
New features:
- If multiple --message (or -m) arguments are passed to
'commit', then they will be concatenated on separate lines.
- The validate_commit_message hook is now told what branch the
commit is on.
Bugs fixed:
- The typo that prevented building with gcc 3.3 has been
fixed.
- Attempting to commit without a signing key available now
fails earlier.
- Command-line option parsing has been redone yet again; this
should fix a number of bugs caused by the use of
boost::program_options. For instance, command line error
messages are now l10nized again, "--depth=asdf" now gives a
sensible error message instead of crashing, and --key= now
works as an alternative to -k "".
- A bug in the new roster caching logic that caused assertion
failures on very large trees has been fixed.
- A rare bug in the "epoch refinement" phase of the netsync
protocol has been fixed.
- Accidental (and undocumented) change to 'automate inventory'
output format reverted; documentation is now correct again.
- Some obscure error conditions with 'pivot_root' fixed.
Many fixes to 'automate stdio':
- IO handling has been rewritten, to remove some
obscure bugs and clean up the code.
- automate commands can now take options (even when used with
'automate stdio').
- The default block size has been increased to 32k (which
should considerably reduce overhead).
- Many automate commands were flushing their output far too
often, causing major slowdowns when used with 'automate
stdio'; this has been fixed.
- Syntax errors now cause 'automate stdio' to exit, rather
than attempting to provide usage information for the calling
program to read.
Other:
- New large-coverage random testsuite for delta reconstruction
path finding algorithm.
- Miscellaneous code cleanups and improved error messages.
- Enhancements to debian packaging.
- New translation to es (Spanish).
Sun Sep 17 12:27:08 PDT 2006
0.30 release. Speed improvements, bug fixes, and improved
infrastructure.
Several internal data formats have changed with this release;
migration is straight-forward, but slightly more complicated
than usual:
-- The formats used to store some cached data in the
database have changed. To upgrade your databases, you
must run:
$ mtn -d mydb.mtn db migrate
$ mtn -d mydb.mtn db regenerate_rosters
-- The metadata stored in _MTN in each workspace has been
rearranged slightly. To upgrade your workspaces, you
must run
$ mtn migrate_workspace
in each workspace.
All of these operations are completely lossless, and 0.30
remains compatible with earlier versions with regards to
netsync.
Speed improvements:
- Algorithm used to find branch heads rewritten, to use vastly
less memory and cpu. This not only makes 'mtn heads'
faster, but also 'mtn commit', 'mtn update', and other
commands, which were spending most of their time in this
code.
- The format used in the database to store the roster cache
was rewritten. This makes initial pull approximately twice
as fast, and somewhat improves the speed of restricted log,
annotate, and so on.
- The xdelta algorithm was further optimized.
- A memory leak in Botan was fixed, which was causing
excessive memory and CPU time to be spent during 'mtn
checkout'.
- Monotone has fast-paths for doing character set conversion
when the system it is running on uses plain ASCII. These
fast-paths now know that "646" is another name used for
ASCII, and systems that use this name (like some BSDs) now
benefit from the fast-paths.
- Miscellaneous other improvements.
Workspace format changes:
- It is now possible to write down a multi-parent (merge)
workspace. However, monotone will still refuse to work with
such a workspace, and there is no way to create one. This
change merely sets up infrastructure for further changes.
- _MTN/revision no longer contains only the parent revision
id; if you depended on this in scripts, use 'mtn automate
get_base_revision_id' instead. Also, _MTN/work has been
removed.
UI changes:
- 'mtn status' now includes the branch name and parent
revision id in its output.
- The output of 'mtn annotate' and 'mtn annotate --brief' has
been switched. The more human-readable output is now the
default.
- 'mtn pluck' now gives an error message if the requested
operation would have no effect.
- On command line syntax errors, usage information is now
printed to stderr instead of stdout. (Output requested with