-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathCHANGES
2205 lines (1679 loc) · 80.1 KB
/
CHANGES
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
===============
CHANGES: xxdiff
===============
Version 5.1
-----------
* Applied changes porting to Qt6 by Lior Silberman and tested on Ubuntu with
g++-11.2 and clang-14. No feature changes.
Current Development Version
---------------------------
* Applied patch from Vadim Zhukov <persgray at gmail dot com> for more general
local encoding conversion.
* Fixed coredump on long lines by allowing line length up to 2^32.
(Thanks to Jim Diamond for finding the issue.)
Version 5.0b1: Port to Qt5 by Rene J.V. Bertin
----------------------------------------------
* Switch to Qt5 (tested with 5.6, probably ok with older versions too)
* Add keyboard shortcuts for "Save as left" and "Save as right"
* Prevent accidental wheel-zoom when pressing the Ctrl key while inertial scroll events are coming in.
Version 4.0.1: Port to Qt4 by Alexandre Feblot
----------------------------------------------
Just an update of the tarball with various bug fixes over 3 years.
Version 4.0b1: Port to Qt4 by Alexandre Feblot
----------------------------------------------
* Merged patch by John Schmerge (<john dot schmerge at gmail dot com>) to make
build work with bison 2 and 3.
* Merged in Rene J.V. Bertin's port to Windows 7 (<rjvbertin at gmail dot com>).
* Alexandre Feblot submitted a port to Qt4 which also work on the
Mac--did lots of work!--I made that the official default version. He
can be reached at <alexandre dot feblot at gmail dot com>.
--- Changes ---
* Full Qt4 (.ui files in Qt4 format, no use of Qt3Support)
* GUI refresh to show a more modern look (frames, file labels, line numbers, cursor)
* Allow to click in the overview to jump to the chosen area (patch from Mark B. Thomas)
* When saving a file with unresolved conflicts, xxdiff now uses conflict markers
which it is able to understand when unmerging. Those markers may be customized
with resources Tag.Conflict.{Start,Sep,SepExtra,End} which replace
Tag.Conflict.Separator. %L, %M, %R are replaced by left, middle and right files.
* Allow to clear search results by searching for an empty string
* Add instant search bar in the online user's manual
* Ability to double click the application on OSX to start it
* The diag and cross patterns in text widgets now horizontally scroll with the text.
* Remove unused resource 'Conditional.Else' (pattern is if/elseif/end)
* Remove useless --mac option (OSX uses usual unix newlines)
and add the new Qt option --graphicssystem.
* Add a rule to create a distributable OSX package (.dmg) of an xxdiff bundle
embedding Qt libraries (64bit only, 32bit part is removed) (make deploy)
* Some accelerator names may change, as xxdiff now uses standard Qt accelerator strings.
* Set the 'Macintosh (aqua)' style as a default on OSX.
--- Bugfix ---
* Merged views now scroll and relocate to the cursor line properly
* Resource 'ShowPaneMergedViewPercent' was not taken into account
* With Aqua style on OSX, the frame showing the current selected color in the
color option tab was not visible
* Diffs are properly recomputed after a file edition
* Fix copy/pasting text on OSX
* Fix to build on Solaris 10, Sun Studio 12
* Fix (workaround) random crash in horizontal diffs computation
* When saving a file with unresolved conflicts using the conditional option,
the last chunk was not managed properly.
Version 3.2.2: Minor features, closing Qt3 Version
--------------------------------------------------
* Fixed nasty old split-swap-join bug.
* In dirdiffs, if an insert, don't invoke a subdiff on directory + empty.
* Added Hanna Mousa Makefile for Sun AMD64
* Applied Bill Jones patches for RHEL/CentOS build.
* Applied H.Nestler's patch to documentation.
Version 3.2: (major feature enhancements)
-----------------------------------------
:Abstract:
Implemented a Python package that contains much code to support writing
scripts around xxdiff. All the xxdiff-* scripts have been integrated in this
Python package and renamed for convenience. New features: a warning is now
issued in decision when accepting or rejecting, if incompatible selections
have been made. The build system was converted from tmake to qmake. Fixed a
few minor bugs.
* In decision mode, if there are at least one selection from each side, if the
user leaves with A or R, pop a confirmation box. This is important to avoid
errors. It is way too easy to select for merge and exit with A. I've been
caught many times. (dup: In decision mode, we should warn the user when
selections have been made and the user does not exit with "merged".)
* Applied patch from Henry Nestler for qt-3.0 compat.
* Applied changes from Trevor Harmon for Qt4 compilation.
* Added Trevor Harmon changes to add new feature --prompt-for-files for Mac OSX
startup with file dialog asking the user what to diff.
* Applied Trevor Harmon's patch for xxdiff.pro for Mac OSX.
* Added a default binding for SaveAsMerged on Ctrl+M, after I saw the comment
from the Monotone docs.
* Finally ported the build system from tmake to qmake!
* Caught error gracefully when xxdiff is missing in the user's path.
* Fixed xx-cvs-diff review/accept mode (still need to test it more).
* Changed the one-file input syntax from xx-cond-replace: You must now always
pass two parameters. If you want to get input from stdin, use - as the first
argument.
* Ran pychecker and fixed a ton of little latent bugs.
(Version 3.2b4)
* **ATTENTION ATTENTION** Renamed all the xxdiff-* scripts to their equivalent
xx-* scripts. This is done to shorten the names, and to clearly mark the
transition between the old and the new codebase. I know it's evil, and I
don't do this very often, but there is so much code that is on top of xxdiff
being called by these scripts now, that to include the full xxdiff name in
them does not make so much sense anymore. They all leverage xxdiff, but they
do so much more. So there. If you got annoyed by this, please send me email,
otherwise I'll never know.
* xx-rename: we now support multiple lists of rename pairs in one run.
* Renamed cvs-revcomp to cvs-revcmp.
* Worked on xxdiff.el somewhat, not finished.
* Integrated code from Michalis Giannakidis (the cvsxxdiff.py author), so that
cvsxxdiff.py is now xxdiff-cvs-revcmp. Thanks!
* Applied bug fixes for xxdiff-cvs-diff from Michalis.
* Added documentation for xxdiff-sql-schema
(Version 3.2b3)
* xxdiff/invoke.py: refactored the xxdiff invocation functions to accept open
files as stdin.
* xxdiff-svn-diff: Fixed bug with diff of directories crashing: we're not
ignoring directories and symlinks appropriately.
* xxdiff-svn-diff: Implemented history for file review. xxdiff-svn-diff
remembers the list of files it has already viewed in previous sessions, as
long as the list of pathnames (considered as absolute) are the same. This
information is saved, along with the merge comments in the user's
$HOME/.xxdiff-svn-diff directory under an appropriate hash.
* xxdiff-svn-diff: Allowed an explicitly specified file (via --comments-file) to
be recycled; this is useful if you interrupted the preview process and you
do not want to lose the comments you made. By specifying the same filename,
the file is not overwritten and its contents are thus recycled.
* xxdiff-svn-diff: Ignoring the specified comments file if it is within the
Subversion directory that we want to diff. So you can do this at the root of
your checkout, and it works::
xxdiff-svn-diff -cC .comments
* xxdiff-svn-diff: can optionally spawn a comments editor window and commit
after review. A nice process to commit to Subversion with this is this:
xxdiff-svn-diff -fc
This will:
1. Run svn-foreign to handle unregistered files, if necessary
2. Asynchronously spawn an editor window with the list of files to be
reviewed, for you to write your merge comments while you review your
changes with the xxdiffs in the background;
3. Run the changes preview with xxdiffs
4. Wait for you editor to terminate.
5. Commit the changes to Subversion.
* xxdiff-svn-diff: can optionally run svn-foreign before the file preview (in
the same process).
* svn-foreign: Added backups to svn-foreign, for deleted files. svn-foreign can
still be copied and used independently from the xxdiff library, and the
backups feature is only available if the xxdiff libs are found.
* Moved svn-foreign into the xxdiff scripts packages, so that its functionality
can be reused in-process. (Note to packagers: feel free to install it or not
along with the rest of the xxdiff-scripts. When used by itself, it is not
really tied to xxdiff but it is a really useful program.)
(Version 3.2b1)
* **IMPORTANT** This release focuses on a complete overhaul of the
infrastructure for making Python scripts around xxdiff. There is now a Python
package that is to be distributed and installed with xxdiff, and all the
scripts share code in there. For the full juicy details, see::
doc/xxdiff-scripts.html
Note to packagers: you now have to include a Python distutils install in
addition to the C++ xxdiff code. This is done like this::
(as root)# python setup.py install
All the Python scripts now depend on Python-2.4 or higher.
* Completely rewrote all the Python scripts.
* Fixed some bugs in the scripts.
* Improved the way that backup files are saved.
* Wrote global, general documentation about the scripts and removed the
automatically-generated documentation.
* Added an example about how to provide another transformer with xxdiff
verification (in documentation)
* Ported all old child process code (like popen) in the scripts to the
subprocess module.
* xxdiff-resolve: Created a new script that finds all the files that are still
in conflict and invokes a 3-way merge algorithm to resolve them.
* xxdiff-svn-diff: There is a new script ``xxdiff-svn-diff`` that can be used
to view all the changes in a subversion checkout. It drives the show
itself, rather than being invoked by Subversion itself. This has several
advantages.
* Add new options to selection code:
- --select-grep: Among the files selected by filename, select only those
which match the given regexp (or multiple clauses)
- --ignore-grep: Among the files selected by filename, ignore those which
match the given regexp (or multiple clauses)
* Some (but few) of the short options have changed during the complete revamp
of the Python scripts. You should review your calling scripts if they use
short option names.
* Created xxdiff-rename, a script that allows one to perform global renames
(this is similar in purpose to the most common use case for
xxdiff-find-grep-sed). Also: xxdiff-rename does not use external processes
to perform the replacement, it's all done from within Python. This should
make it possible to run easily under Windows.
* Created xxdiff-filter, a script that runs the transformation loop using a
UNIX command filter (see docs).
* Made an infrastructure to process files in transformation loops.
xxdiff-find-grep-sed was rewritten in those terms.
* xxdiff-diff-proxy: Included patch from Martin Renold <[email protected]> for
return code and ignoring stderr [1329298].
* The xxdiff-subversion proxy script that is used to be invoked from ``svn
diff`` has been renamed to ``xxdiff-diff-proxy``.
* Created lib/python directory to hold shared code between all the Python
tools, thereby reducing redundancy. The price to pay for this is that you
cannot simply copy the xxdiff-* scripts in a bin directory anymore, to run
them, you must also install the xxdiff python library. A setup.py file is
provided for this purpose.
I finally did this because the cost of redundant code was becoming annoying
in the presence of my desire to code new tools. I did not want to have to
cut-n-paste anymore, in the name of having every script be self-contained.
Installing a Python library is not such a big deal anyway, and I judge that
there is enough code by now to warrant it. In addition, this will make it
possible for people that want to write their own scripts to reuse some of
the infrastructure that I provide for the already existing scripts.
Note to packagers: you should be able to install the xxdiff Python library in
the most usual way for Python programs::
(as root)# python setup.py install
* Changes not related to the scripts:
* Incorporated patch for building RPMs (untested, I don't have a RH box),
submitted by Harshula <hash at jayasolutions dot cjb dot net>
* Fixed pointer ownership bug that occurs on BSD, using user-submitted patch
and review (Russell Cattelan - [email protected]) [1382170].
* Applied user submitted patch (Robert Jackson - [email protected]), which fixes
the destination directory for file copy in directory diffs mode, to add the
appropriate destination directory. [1210548]
* Fixed line number in --single mode [1351955].
* Applied user submitted patch (Wim Lewis - [email protected]) for unescapeChars()
bug [1094008].
* When using --exit-on-same, output something if we're in decision mode.
* Created ports subdirectory, added files for MAC OSX from Alexandre Feblot.
* Added patch from Robin Humble for building x86_64 rpm.
* WARNING!!! Some of the switches have changed, in the name of consistency.
You will need to review your scripts.
Version 3.1: (minor feature enhancements)
-----------------------------------------
* Implemented feature to save to temporary files before running subordinate
diff. This is useful if you want to support reading from FIFOs. [ 538340 ]
* Made font widget string correspond to qt3's conversion system.
* Changed default gen init file to $HOME/.xxdiffrc and moved this to Save
Options under File Menu (everyone was puzzled by the UNIX way of doing things,
so I give in).
* Removed unused code.
* Rewrote code to render text to render carriage returns explicitly.
* Removed debug drawing in text widget that was showing up only in debug mode.
* Added documentation on selecting individual lines [ 649285 ].
* Added --show-merged-pane option (ericveum suggestion) [ 867395 ].
* Changed the options help a little bit and added display options.
* Removed forgotten cerr output in util.cpp.
* Implemented interactive font resizing [ 964629 ].
* Simplified wheel redirect code.
* Updated documentation ([ 1011009 ] Tomas Pospisek)
* Added wheel support in overview area ([ 1022392 ])
Thanks to Brett Levin for the patch.
* Fixed xxdiff-cond-replace with zero arguments.
Version 3.0.4: (minor bug fixes)
--------------------------------
* Fixed crash for redo diff [ 1061364 ].
Version 3.0.3: (minor bug fixes)
--------------------------------
* Fixed [ 571454 ] memory leak when running on /proc/$$/status files.
* Fixed [ 566683 ] backslashes stay in resource strings.
* Fixed leftover problem with UI not being created.
* Add simple subversion script from saqib.rasul
* Implemented redirect of wheel events from text widget to scrollbar.
* Implemented rendering of horizontal insert markers (1 pixel wide). We still
need to add the option to the dialog box, but it is available from the display
menu.
* Made a slight improvement to horizontal diffs that attempts to correct over
the change hunks that the dynamic programming heuristics algorithm comes up
with.
* Fixed bug with uninitialized variable in overview area [ 894724 ].
* Added bug fix from Francois L'Archeveque for horizontal diffs, bug that would
occur in rare cases and that would calculate a larger diff rather than less;
* Added optcomplete support to xxdiff-* scripts.
* Changed xxdiff-cond-replace to accept a file on stdin.
* Creation of xxdiff-cond-replace script and documentation.
* Improvements in xxdiff-find-grep-sed, backing up files only when needed.
* xxdiff-find-grep-sed and xxdiff-cond-replace ClearCase checkout only when
absolutely needed (untested, I don't have ClearCase at the moment).
Version 3.0.2: (minor bug fixes)
--------------------------------
* Fixed important bug with reloading files after they have been saved. Load two
files with diffs, select various hunks, save files, reload diff. It will
sometimes crash. The problem was that the fileinfo structure was being
recycled and it cannot.
* Removed old ifdef'ed code from builderFiles2.
* Changed how the versioning is done, there is a single file in the root that
contains the version number now.
* Moved version.{h,cpp} to proginfo.{h,cpp}
* Removed dependency of some old scripts on obsolete parse_opts home-grown
module.
* Converted xxcvs.newer to optparse, but I don't use it, no tests yet.
* Added useful --select-files option to xxdiff-find-grep-sed. There is enough
interesting behaviour in the grep-sed part of the script for this to be
worthwhile.
Version 3.0.1: (minor bug fixes)
--------------------------------
* Factored out the toTime_t problem, fixed other problems with qt2.
* Applied patch from Oron Peled <oron at actcom.co.il> for missing toTime_t
under qt-3.0 (and not just qt-2.x as I was thinking). This should make it
work under RedHat-8.0.
* Made xxdiff-find-grep-sed run diff again on merged decision, to reflect in the
output log what lines actually have been merged.
Version 3.0: (minor features and stability release)
---------------------------------------------------
This releases marks a long period of stability with relatively few and isolated
bugs. We have implemented a few minor features and have decided to release as
3.0 to make this the new stable version.
* Fixed some cmdline options documentations.
* Wrote new documents in xxdiff/doc and added links.
* Tested xxdiff AMR with 3 files, it works, logic is a bit illogic w.r.t. "mine
oler yours" order (but it makes sense w.r.t. "yours older mine" ordering). I
would rather be consistent with the left <-> right behaviour with 2 files.
* Added Makefile and HTML documentation for scripts.
* Added GNU copyright text to all python scripts in xxdiff/bin
* Never ask about overwrite when saving to the merged file if a --merged-file
option has been specified: after all, if the user (or script) has specified it
on the cmdline, it's expecting that file to be overwritten. Removes the
annoying warning when running from scripts that require saving to the merged
file, in that case (and it makes sense).
* Refactored code to ask about file overwrite.
* Added --recipient option to xxdiff-encrypted for people who have not
configured their gpg (this might help).
* Finished and tested xxdiff-encrypted.
* Added an extra line between options in 'xxdiff --help' output for aeration.
* Added indicate-input-processed feature for xxdiff-encrypted.
* Added a few simple switches where it made sense.
* Removed useless printInvocation function.
* Removed XX_ENABLE_FORCE_SAVE_MERGED_FILE obsolete code.
* Worked on scripts, xxdiff-encrypted.
* Added compiler.h compiler detection, using current defines from Boost CVS
(2004-01-14)
* Removed having to set the compiler in the makefile with xxdiff.pro
* Added info to build on RedHat AS w/ qt2.
* Added moc_app.cpp file that will work with qt2.
* Couldn't find how to get qt2's moc to act correctly about the XxApp base
class. This generates an annoying warning with qt2. Will tolerate.
* Back-ported to qt2
* Applied patch from [ 867279 ] "sun compile issue: C/C++ lib getopt prototype"
from <ericveum at oracle.com>. Fixed SUNWspro build problem.
* Applied patch from [ 867274 ] from <ericveum at oracle.com>. Fixes SUNWspro
build problem.
* Created xxdiff/bin and added some xxdiff-cvs scripts in there.
* Changed Makefile target to create xxdiff in xxdiff/bin instead.
* Added projects env init file so that I don't have to fiddle now when I want to
use debug xxdiff.
* Fixed this bug from my TODO file:
"xxdiff --unmerge <file>" (and not unmerge3) crashes with floating
point exception on this file contents:
<<<<<<< A
lines from A
||||||| B
lines from B
=======
lines from C
>>>>>>> C
* Implemented xxdiff/tools/misc/xxdiff-match for bug reporter [480106].
* Fixed bug [607560] with saving files when using --unmerge and --unmerge3.
* Chased bug with [820781] with problem using --mac under Linux, because GNU
diff doesn't understand mac newlines. So I clarified the --mac option
documentation a bit.
* Applied change for setting locale internally because we parse only english
messages.
* Added function and toolbar button: next and diff files.
* Made new pixmaps for the diff files at cursor button.
* Found problem with exclude option, it was so simple, why didn't I bother
before now! Enabled support for --exclude and --exclude-from directly from
xxdiff command-line. You can now ignore those CVS and ``*.o`` files in your
directrory diffs!
* Changed documentation source from qml to docutils text file (to be converted
manually with docutils-html tool every time). At least I don't have to write
HTML by hand anymore. Simple is best. Me like simple solutions.
* Updated documentation for new features.
* Removed --output-on-exit option and replaced it with --decision option,
which replaces the normal exit hook with three hooks, so you're force to
exit with a decision of accept, merged (with merged file) or reject.
There are default (overrideable) bindings for the decisions on 8, 9, 0.
* Implemented ACCEPT, MERGED, REJECT toolbar buttons for better integration
with interactive patch merging. You can use the string output by xxdiff
upon exiting to implement the desired replacement. The MERGED button
forces a merge output to be present. Not sure if this is generic enough,
but I think it is.
* Applied patch from Eric Veum <eric.veum at oracle.com> for Clearcase return
status.
* Applied patches from Georg Baum <Georg.Baum at post.rwth-aachen.de> for
switch from rawname to toString/fromString.
* Incorporated patch for format strings in user-provided titles by
Tommi Kyntola <tkyntola at cc.hut.fi>
* Added SaveAsMerged binding.
* Added Christian Fowler <cfowler at lulu dot com> tools for Perforce.
* Re-organized scripts/ and tools/ directories.
* Added comment about compiling with .NET from bug report.
Version 2.9.2: (minor features)
-------------------------------
* Removed unimplemented exclude switches.
* Tested build with qt-3.1.1, it works fine.
* Incorporated fix for "--help-html" crash when compiled against KDE (thanks
to Andreas Pour <pour at mieterra.com>).
* Added tentative option for attempting to process Macintosh files with CR as
line terminator.
* Added special marker in counter for remaining unselected regions that would
mark when the two files are equal byte for byte; This allows the developer
to visualize quickly if the file has no difference if at least it contains
whitespace differences.
* Implemented "--single" option to allow xxdiff to open a single file.
* Double-clicking on an added or removed file in directories mode now
opens an xxdiff with a single file in it. This is to be used for
convenience. You'd be better off using a file editor to visualize
single files, but some people like the consistency of looking at
everything thru the same program.
Version 2.9.1: (minor bug fixes)
--------------------------------
* It hadn't occurred to me that most people use the Alt key as their window
manager key in sawfish or the kde winmgr (I use the Super key bound in the
lower left control to free my Alt key). Thus my choice of Alt+Button1 for
the variable text selection will not work with most people's default
configurations.
So I have decided to change it, nasty me, to Control+Button1. I moved the
NEITHER selection that was bound there to Shift+Button3.
Version 2.9: (minor features)
------------------------------
* Implemented variable text selection in text widget.
Press ALT-Button1 and drag to select text that gets put in the
clipboard.
* Split formatting into header formatting for the whole selection text and
per-line formatting.
Version 2.8: (minor bug fixes)
------------------------------
* Implemented per-hunk ignore whitespace for 3-way diffs properly (fixed
problem described in 2.7.2).
* Enabled forgotten disabled ignore-blank-lines menu item.
* Removed now unused libgen.h from app.cpp (thanks to dmarks @ sf for
reporting the bug).
* Applied changes from JF Panisset for SGI/IRIX/MIPSPro * compilation.
Version 2.7.2: (minor bug fixes)
--------------------------------
Known Issue With 2.7.2: 3-way diffs will break if you turn on the per-hunk
ignore whitespace feature. This warrants 2.8 release.
* Removed forgotten debug trace.
Version 2.7.1: (minor bug fixes)
--------------------------------
* Fixed minor color bug with rendering per-hunk ignore whitespace with
directory diffs.
Version 2.7: (minor features)
------------------------------
This release introduces a very useful feature for merge reviewers: diff hunks
which contain only whitespace and line break changes will be detected and can
optionally be flagged with a different color. This permits the reviewer to
quickly ignore source code reidentation and reorganization changes.
Also, alignment lines are now be filled in with a subtle pattern to better
identity them (can be disabled).
(Misc)
* Blank lines can now have a little cross-pattern drawn in them, to better
identify visually that they are not real file lines, but rather just
inserted for display purposes. This makes it dead obvious. Most won't care.
* Made little pattern on by default.
(Per-hunk Ignore Whitespace)
* Implemented the per-hunk ignore whitespace feature for two-way and
three-way diffs.
Version 2.6: (major features and minor bug fixes)
-------------------------------------------------
This release finally introduces support for the ignore-blank-lines feature of
GNU diff, as well a new feature to force the production of merged files if
desired. The port to Qt-3 has been completed and xxdiff can now be compiled
conditionally with KDE support (thanks to Trevor Harmon). Many minor bug fixes
are included as well.
Important note: qt3 is now required. 2.6 will not compile with qt2, due to
differences in the UI designer files between qt versions. Such is life.
(Per-hunk Ignore Whitespace)
* Implemented of the ignore-display feature in preparation for per-hunk
ignore feature.
(Style Resource)
* Add a new resource: Style, so that users can specify the tooklit style via
.xxdiffrc. Cmdline specification of style still takes precedence.
(Force merged file production)
* Moved markersFileDialog.* to markers.*
* When using --output-on-exit, don't bother the user about overwriting
existing files for the merged output file for Perforce users (thx to Philip
Quiney <phil.quiney at radiantnetworks.co.uk>
* Made sure that closing window should invoke the last hooks and remains in
the application, and closing subsequent windows, with --output-on-exit the
user is really forced to save a file.
* Introduced XxMarkersDialog, a dialog that contains just the markers, and
not the file dialog either. This one is used for --output-on-exit and could
eventually be used in the save as left/middle/right/merged dialogs, if I
didn't want the convenience of being able to change the name right there.
* Finished implementing feature to force the user to produce a merged file.
(Tools)
* Added emacs editing settings somewhere in the tools subdir for contributors
to peruse.
(KDE Port)
* Fixed KDE color dialog bug, when canceling color it was getting set anyway.
* Modified KDE code slightly.
* Applied KDE patch contributed by Trevor Harmon <trevor at vocaro.com>.
(Ignore Blank Lines)
* Enabled the options dialog option for ignore blank lines.
* Implemented working heuristic to match lines when ignore-blank-lines is
on. We check for empty lines that try to match the non-empty lines. I'm
pretty convinced that this should work in all cases, but although all my
tests seem to work, I will validate this over the next few weeks and only
release if all goes well. This should conclude the long-waited support for
ignore-blank-lines, which improves considerably the quality of diff output
in many cases.
* Implemented display of ignored blank lines in SAME regions. This pretty
much makes it work. I'll have to do some more testing before I release.
* Started experimenting with diff output parser support for ignore blank
lines. It works, but I want to make it somehow display the blank lines
(just not as a diff).
* Re-enabled tentatively ignore-blank-lines option to start testing it how we
could support it.
(Text Rendering Bug)
* Reverted to drawing the background rectangle color by hand.
* Looked at it, added some debugging code.
(Misc)
* Fixed bug with geometry parsing [566678] [566682].
* Fixed typo in documentation [566684]
* Fixed bug with copy file expansion by quoting files
* Fixed bug with overview area not updating its vertical extents on redo diff.
[533659] "rediff:no length update in overview area"
* Investigated false-assert reported bug about saving as merge conflicts.
* Removed using Id and Date in file headers... it makes diffs for nothing.
* Fixed clipboard bug that now occured with qt3, we put the selection into
the "mouse", whatever that means.
* Fixed bug with not running exit hooks when closing through winmgr.
* Added DTD header for HTML output and validated HTML output of documentation
using wdg validator.
(Pane Merged View)
* Started investigating vertical scrollbar problem with paned merged
view. We'll need a pixel scrollbar I think.
(Port to Qt-3.0)
* Font rendering has finally all been fixed.
* Fixed default font, but I'm not able to get the same with the Qt way of
specifying fonts.
* Text font label went really large with funny font description in options
dialog, with certain fonts only. Bug fixed by Trevor Harmon.
* Fixed missing include file for Qregexp.
* Fixed overview area layout fixed size.
Version 2.5: (major features)
------------------------------
This release removes the saving of standard input into temporary files and adds
support for unmerging merge conflicts into three files (if the conflicts contain
the information, such as when using "diff3 -m").
(No Temporary Files)
* Removed saving of stdin to a temporary file. This could be considered is a
major security update, because if you were using decrypted files to
standard input of xxdiff. xxdiff used to save its stdin into a temporary
file for redoing diffs. For example, running something like
"gpg -d secret.asc | xxdiff - public.asc" would save a decrypted copy of
secret into /var/tmp. Kill xxdiff and it would lie there. Now that's
fixed.
* When a file is from stdin, redo-diff clears xxdiffs, that was
crashing. With the new changes that don't save to a temporary file, that
fixes the problem.
(CVS unmerge conflicts)
* Updated documentation for unmerge3 feature.
* Finished implementation of unmerge3 feature. We won't try to insert
interrupted regions for the unmerge 3-files version, just insert SAME
regions then (including markers).
* Finished first implementation of unmerge3 feature.
* Started implementation of parser for "diff3 --show-all" merge conflicts.
* Disabled more useless UI in unmerge mode.
(Misc)
* Slight improvement to goto file feature, fixed bug with goto-line in
unmerge mode.
Version 2.4: (major feature)
------------------------------
This release introduces the unmerge feature.
(CVS unmerge conflicts)
* Fixed newly introduced bug found with regression tests.
* Fixed display of unmerge line numbers in filename bar.
* Fixed unmerge display line numbers through better method (the file buffer
contains the indirection line numbers, simple, less storage, and as
efficient).
* Started fixing split/swap/join with display line numbers.
* Wrote documentation for unmerge.
* Tags for unmerge are now configurable through the resources.
* Fixed redo diff in unmerge mode.
* Implemented display line no support for line nos different than the real
numbers, in XxLine.
* Fixed the overview area drawing problem by reindexing the buffers.
* Polished it up, and decided not to support arbitrary format through input,
until QRegExp supports grouping expressions (known to be in qt3).
* Got it working! Now have figure out some small issues and polish.
* Resumed work on unmerge feature.
(Packaging)
* Enabled building rpms as user, not root.
* Added GPG signing of packages.
(Cleanup)
* Added dummy to diffs lines to make the lines access a tad little tiny bit
faster.
(Misc)
* Make optimization in XxDiffs to avoid having to subtract 1 from lines
array.
* Updated web page for 2.4.
* Fixed unimportant memory bugs in cmdline parsing.
* Fixed bug with scrollbars not adjusting properly to redo diff. This bug is
not present in the stable tree. Kudos to Gijsbert De Haan for finding this
one.
(Windows port)
* Finished compiling and linking under W2K. However, it doesn't run, we
have a weird problem with getenv() causing an Access Violation, and when
getenv is removed, we get an Access Violation inside Qt.
* More porting to Windows. It almost all compiles now.
Version 2.3: (minor features and major bug fixes)
-------------------------------------------------
(Quick save merged results)
* Partially implemented feature to force the user to produce a merged file
and then ifdef'ed out, this will come later.
* Finished implementing feature, new resource to define default merged
filename format.
* Changed default filename for "save as..." to be the merged filename.
* Implemented exit-if-no-conflicts feature.
* Changed implementation of select merge to use the resource system so that
someone could set automatic merging to always be enabled if they wanted to.
* Started implementation of the force-saved-merged feature.
(Port to Gcc-3.0)
* Compiled with gcc3.1 (did not link).
* Linked with qt-2.3.2 compiled with gcc3 and it works.
* Ported all objects to compile with gcc-3.0.2.
(Documentation)
* Updated documentation to merged features.
(Misc)
* Some changes for HP/UX compilation (thanks to Albert Chin-A-Young)
* Fixed bug in color dialog; pressing cancel would set the color to
blank. Credits to <volker_apelt at yahoo dot de> for reporting it.
* Fixed Debian compilation warnings reported by Tomas Pospisek
<tpo at sourcepole dot ch>.
* Fixed implementation on EXIT_ON_SAME to really not show the window at all.
* Fixed bug with EXIT_ON_SAME and IGNORE_BLANK_LINES being turned on.
* Fixed important bug with not being able to grok files with spaces in
them. This was also happening for spawning subdiffs from directory diffs
(logged in as bug [508429].
* Added warning and disabled init option to ignore blank lines, because we
cannot support it for now.
* Fixed bug with not parsing incomplete lines (kudos go to Greg Lonnon
<glonnon at ridgerun dot com> for reporting it!)
(Install and Packaging)
* Added HTML file generation and packaging.
Version 2.2: (interim release)
------------------------------
This is an interim release because it contains many important bug fixes, but
also contains remaining bugs. However, the author is way too busy to finish it
properly and won't be able to in the next few weeks, so here is an interim
release. I won't announce it on freshmeat.
(Remaining unselected regions indicator)
* Implemented indicator for "remaining unselected regions" counter label
(above the overview area).
(Split app and text widgets)
* Let the text view manage its own top and bottom line, as well as scrolling.
* Made the merged window use a normal text widget. Not done.
* Finally cleaned up the whole update mess. Big changes.
* Removed stupid scrolling menu entries.
* Finished basic not-clean splitting to central widget.
* Did est.50% of it, still needs to clean up app, broke
everything in the meantime, but there are ifdefs (untried).
(Quick save merged results)
* Added UI for "save as merged" feature (not implemented yet).
(Merge)
* Implemented 2-way automatic merge selection (new feature).
(Misc)
* Fixed compilation to work with aix-xlc configuration, thanks to
instructions from [email protected].
* Fixed bug introduced in 2.1 with line copy exhibited with split/swap/join.
* Fixed bug introduced in 2.1 [485741]: insert at beginning of a line would
display erroneous horizontal diff (thanks belley).
* Fixed bug: the pane merged view didn't always update right.
* Added conditionals for all delete[] (i had forgotten).
* Changed Command.Edit default value to an xterm instead of just a vi.
* Makefile now cleans doc.h.
* Added man page from Tomas Pospisek, changed spec files to install it.
* Debian package for 2.0.2 has just been made by Tomas.
* Remove all FIXMEs and change for something else.
We should be able to grep for no FIXMEs in the code before releasing.
(Pane Merged View)
* Made scrolling work in pane merged view.
* Fixed minor bug when deleted region is rendered on alignment lines in
merged rendering.
* Finished integrating merged view rendering and text rendering in the same
code.
* Bug: the merged view vscroll is not adjusted like the text one.
New shared design fixes this.
* Draw the highlights even in the merged view, it will really help figure out
which side has been chosen.
* Worked more on polyvalent text rendering widget, almost done.
* Added sup color for decided merge regions: the merged view will now render
with horizontal diffs as well.
* Figured out how to build a rpm as non-root, what options to use.
~/.rpmmacros : %_topdir ~/tmp/rpmbuild, %_tmppath /var/tmp
* Merged changes from 2.0.3.
* Fixed bug: using splitter, resize text view to zero, and you would get an
internal error at (diffs.inline.h:46).
* Fixed automatic adjustment of splitter percent for merged view.
* Tested pane merged view toggle and checkbox update.
* Tested popup merged view toggle and checkbox update.
* Fixed bug with pane merged view, continued implementation.
* Implemented popup merged view upon startup.
* Implemented new layout with pane merged view.
* Added show resources for pane and popup merged view.
* Added percent resource for pane merged view.
* Decided on names for different merged view: pane m.v. and popup m.v.
* Add an option to make layout the merged view like xcleardiff, added an
option to make it visible on startup as well.
Version 2.1: (major feature release)
------------------------------------
Implemented multiple horizontal diffs feature. Rewrote ignore horizontal
whitespace feature to ignore changes in whitespace. Added support for
command-line Qt options and formatted like KDE programs.
(Multiple horizontal diffs)
* Cleaned up code for multiple horizontall diffs.
* Made sure that the hordiffs don't get copied when the third file is empty.
* Optimized computation of horizontal 3-way diffs, when we know two sides are
equal, don't compute bounds with the three files. Compute with two and copy
other the third one, like we do for multiple diffs with blue regions.
For DIFFDEL regions. I rewrote the code that's driving this.
* Split hordiff code into its own file.
* Changed MinContext to Context. This makes sense, there is a direct
analogy.
* Fixed bug in insertion of ws inside a word, with more than 1 ws.
* Make the ignore horizontal whitespace treat all contiguous chunks of
whitespace as a single whitespace (tdemarge idea).
Implemented ignore horizontal whitespace as ws compression
(this is a big difference and should be mentioned in the change log).
* Realized there is a problem with the implementation of the ignore
whitespace approach that I used for horizontal diffs... whitespace cannot
really be ignore when computing the diffs themselves, otherwise it can
result in funny diffs, e.g. "word other" an "wordo other" will result in
the second o being computed as a diff. In this case there are many
potential solutions, and it is not obvious which one we should follow.
Another possibility would be to non-whitespace bracket the normally
resulting diffs (taking into account ws), but then do we keep diffing
recursively?
We have the same problem with the single bracketing technique!
This will require some thinking.
(This was fixed above.)
* Implemented using permutations in line bracketing algorithm.
* Fixed nasty bug in multiple diffs horizontal table.
* Renamed hysteresis to min.context, because there is a direct analogy for
horizontal diffs minimum common region to context lines in context
(vertical) diffs.
* Implemented ignore whitespace support for multiple horizontal diffs
(a simple bug remains
* Tested for when the maximum table size is exceeded... it works.
* Added resource parsing.
* Tested menu
* When changing the horizontal diff parameters in the resources, we have to
invalidate and perhaps recompute the horizontal diffs.
* Implemented in 3-way, with blue regions, and diffdel as well.
* Compute and implement upper bound for hordiffs buffer, use in text and
line.
* Much progress in multiple horizontal diffs implementation.
* Time was being wasted in horizontal diffs computatino for SAME lines, now