5
* remove all the if 0 in builders (and in all the code)
8
2 Less Urgent, but do it soon too
9
3 Goals for 4.0 stable release:
17
- Apply Trevor Harmon's patch for the port to Qt4.
20
Less Urgent, but do it soon too
21
===============================
23
* Add a '-w' option to invoke.py (!?), to ignore whitespace changes easily.
25
* When the comments file has not changed, warn the user that he did not appear
26
to have saved the file.
28
* It would be awesome if select.py had an option to select by file-type
29
(e.g. running “file”). Open a child running a “file” command and feed it the
30
filenames one-by-one rather than starting a new one everytime.
32
* Look at fixing the bugs in xxdiff/test/bugs
34
* For MAC OSX: if there are no files specified, invoke a special double- file
35
dialog chooser to graphically select which files to diff.
37
* xx-svn-diff: Comments file: To add new files to the comments file:
39
a) Check if at least one line of the comments file is the same as any line of
40
the status OR if the file is empty
42
b) if so, add all the status lines tha tdiffer at thte end of the comments
43
file (with an empty line in between)
45
c) otherwise we do not append the new statii lines
47
* Bug: toggling "Format clipboard text" at runtime does not seem to have an
50
* Fix [1200496] Diff Errors reported with certain text files
52
* Fix [1079038] Split Bug.
54
* xx-svn-diff: Implement fetching any two revisions and displaying the filelist
55
and the diffs graphically for those changes.
57
* See open bug [1174957] Odd behavior when "-O" and "-E" used together: When
58
--exit-if-no-conflicts and --merged-filename are specified together, and there
59
are no conflicts, output the result file to the merged filename.
61
* There is a slight rendering bug with my current font (see png file under /bugs)
63
* Define a clearer list of verbosity levels that is consistent across all the
64
scripts and change the levels.
66
* Automatically log output to a log file in the backups directory if the backups
67
are enabled, that would rock.
69
--------------------------------------------------------------------------------
72
* When xxdiff is invoked with --decision and -D, which answer should result?
73
Right now we output NODECISION, but perhaps ACCEPT would be more appropriate?
76
* Write an asynchronous background loop in xformloop for slow processes, where a
77
number of diffs could accumulate in the background and be ready to diff while
78
whatever is being done to produce the diffs keeps running. Grab this from my
79
good old exp preview. Put this in ``lib/python/xxdiff/async.py``
81
(Note: this goes hand-in-hand with the diff'ing of arbitraty SVN revisions, as
82
we will have to fetch files from the network and this might be slow.
83
Implement both of these features at the same time.)
85
* xx-svn-diff: When the parent process gets killed, make sure to kill the
86
editor as well, otherwise it can be really annoying because this leaves swap
87
files around if we restart manually killing the editing window (which can
88
happen if you leave it in the background).
90
* Provide a way to invoke xxdiff with alternate diff programs.
92
- Using this code, provide code to create alternate diff programs that compare
93
pairs of things, with or without subdiffs, by outputting POSIX diff output.
96
* xx-rename: With respect to case sensitivity, supports the smart
97
replacement behaviour that is present in GNU emacs.
99
* Implement a better side-by-side diff that includes line numbers and context.
100
The current side-by-side diff sucks. One of the things that could be done
101
easily is reuse diff --side-by-side without compressing, adding the line
102
numbers by hand, and then compressing by hand too.
104
- Add an option to generate normal diffs rather than side-by-side.
106
* xx-patch: Finish It!
108
* You have to deal with 'delete' and 'add' cases.
110
* Q: what do we do when patch fails? How do we treat it?
111
must read the output messages of patch and warn the user.
115
* --launcher: Create simple PyQt or CURSES GUI for listing files from ``svn
116
status``, on which you can click to view the diffs.
118
* Implement including differences from the ancestor file with 3-way diffs.
120
* Implement viewing differences between any two revision in the repository.
122
* Wouldn't it be nice to have a decision mode here? Maybe, maybe not. You
123
can save as merged if desired, the merged filename is set to the output
126
* Fix these old subprocesses by using the subprocess module::
128
banane:~/p/.../python/xxdiff$ igrep os.popen .
129
./scripts/encrypted.py: fin, fout = os.popen2(decodecmd % m, 'w')
130
./scripts/encrypted.py: fin, fout = os.popen2(cmd, 'w')
131
./scripts/cvsdiff.py: cin, cout = os.popen2(
132
./scripts/patch.py: cin, cout = os.popen2(cmd, 'rw')
134
* Implement --single-right: we should be able to display single files on either
135
side. You should fix xx-match after that, so that it passes the correct
138
* Consider putting a check for binary files in xxdiff.invoke.* and raise a
139
RuntimeError if the files aren't text.
141
* xx-rename: We should able to read renames from a file, two names by line, or
144
--------------------------------------------------------------------------------
146
* Idea: we could modify xxdiff so that when we reload, we could output RELOAD
147
and that could mean for the client to redo some task in the background, then
148
let xxdiff know to reload after that. This would allow xxdiff to communicate
149
with the parent process. This should actually be part of a larger protocol
150
for client to communicate with xxdiff and vice-versa. This is a cool idea,
151
but a lot of work for very little benefit.
155
* From Michalis Giannakidis, mgiann@beta-cae.gr
159
What, here in our company, find useful about cvsxxdiff is:
160
o) cvsxxdiff is one file. No python module directory or initialization is
162
o) Do a 'cvs up; cvsxxdiff' before commit to see all the local changes we have
164
o) Do 'cvs up; cvsxxdiff -b 1 file.c' to see the last chages that were made on
165
a file by a colleague.
166
o) We often need to track bugs in our code. This means going back to previous
167
revisions, thus doing ex: 'cvsxxdiff -b 1 -b 2 file.c' to compare the
168
previous with the 2nd previous revision. (similar with cvsxxdiff -r 1.1 -r
170
o) The utility prints in the standard output the logs between revisions i
171
and j ( ex: cvsxxdif -b i -b j file.c)
173
One script to do it all.
178
--------------------------------------------------------------------------------
180
- Install xxdiff on windows, when Qt4 non-commercial comes out
182
- try beyondcompare::
184
Si jamais tu veux retravailler sur xxdiff, je viens de trouver le canif
185
suisse des diffs graphiques, tu manqueras pas d'id\x{00E9}es pour xxdiff
186
avec \x{00E7}a... Absolument incroyable (mais c'est un produit
187
commercial). \x{00C7}a s'appelle "Beyond Compare" de Scooter Software. Le
188
genre de programme qui te fait dire "enfin sti". \x{00C7}a compare aussi des
189
r\x{00E9}pertoires (r\x{00E9}cursivement itou, avec des diffs par fichier),
190
et c'est aussi incroyablement facile de faire un merge. Vraiment
192
http://www.scootersoftware.com/
196
* Bugs with horizontal diffs:
198
However, I do have a suggestion. Your code does not
199
seem to be using a logic such as the Ratcliff/Obershelp
200
pattern recognition algorithm, which is adopted by some
201
other common graphical diff tools. Using such a logic,
202
they search for the longest common substring between
203
two strings. The match is then used as an archor,
204
around which they would recursively do the same for the
205
left and right remaining pieces.
208
New feature, ignore regexp patterns::
211
Comme convenu voici le feature que je trouvais utile dans Examdiff Pro :
212
- Regular Expression support dans le champs Ignore.
214
Faire une comparaison de 2 fichiers contenant des UID que je ne veux pas considérer comme différent lors de la comparaison.
216
j'avais a comparer des fichiers generes par un generateur de code java. les fichiers contenait des code pockets du genre:
217
// BEGIN Code pocket ID : XXXX-XXXX-XXXX-XXXX
218
// Some code to be preserved when regenarating
219
// END Code pocket ID : XXXX-XXXX-XXXX-XXXX
221
Je pouvais avec Examdiff Pro exclure de ma comparaison les "Code pockets" au
222
complet (pas seulement les tag mais aussi le contenu du code pocket avec un
223
regular expression. Voil
226
* fix bug on tp with 3-way, press S::
228
QPixmap: Invalid pixmap parameters
229
QPainter::begin: Cannot paint null pixmap
230
QPainter::setPen: Will be reset by begin()
235
* with option --single it would be nice to be able to say that the file should
236
be displayed on the right side and not the left, this would be nice for
237
directory diffs when clicking on a hunk where there is only a file on the
238
right. Right now the file appears on the left anyway, which just looks wrong.
242
* Maybe create a new return code for the combination of ``--decision`` and
248
// If we asked for a decision, at least output something.
249
// FIXME: maybe this should become NODIFF?
250
if ( _cmdline._forceDecision == true ) {
251
std::cout << "NODECISION" << std::endl;
255
* prepare to build with qmake
7
259
* add the horizontal marker to the options dialog as well.
11
* xxdiff test/tabs/w2a test/tabs/w2b::
262
* xxdiff test/tabs/w2a test/tabs/w2b::
14
265
#ifndef XX_INTERNAL_DIFFS
951
1167
> Martin Blais wrote:
953
> >�On Monday 21 January 2002 07:06, you wrote:
956
> >�> I have a question about xxdiff
957
> >�> (http://sourceforge.net/projects/xxdiff/).
959
> >�> Is it possible to change the merged file
960
> >�> manually. I mean to be able to add text
961
> >�> that is not in any of the 2 or 3 files
962
> >�> compared. This is sometime very useful.
964
> >�> I haven't see that (clearly) in the online
965
> >�> documentation. I think this will be a very
966
> >�> interesting item for the FAQ.
968
> >�> I'm using ClearCase at work and from this
969
> >�> point of view clearmerge is really good.
970
> >�> But for me, I would prefer some tool under
1169
> > On Monday 21 January 2002 07:06, you wrote:
1172
> > > I have a question about xxdiff
1173
> > > (http://sourceforge.net/projects/xxdiff/).
1175
> > > Is it possible to change the merged file
1176
> > > manually. I mean to be able to add text
1177
> > > that is not in any of the 2 or 3 files
1178
> > > compared. This is sometime very useful.
1180
> > > I haven't see that (clearly) in the online
1181
> > > documentation. I think this will be a very
1182
> > > interesting item for the FAQ.
1184
> > > I'm using ClearCase at work and from this
1185
> > > point of view clearmerge is really good.
1186
> > > But for me, I would prefer some tool under
973
> >�nope, you cannot. the rationale behind this is that I don't
974
> >�want xxdiff to become an editor.
1189
> > nope, you cannot. the rationale behind this is that I don't
1190
> > want xxdiff to become an editor.
976
1192
> It would be a logical evolution, wouldn't it?
977
1193
> I mean for the merge window only.
979
> >� i'd like to eventually make it able to do very simple
980
> >�editing (and to limit it to that).
1195
> > i'd like to eventually make it able to do very simple
1196
> > editing (and to limit it to that).
982
> >�you can, however, click on the filename widgets to put
983
> >�them in the clipboard and then paste into a shell for
984
> >�editing the file.
1198
> > you can, however, click on the filename widgets to put
1199
> > them in the clipboard and then paste into a shell for
1200
> > editing the file.
986
1202
> Not very friendly way and error prone I suppose.
988
> >�let me know the minimal editing capabilities you would
989
> >�like to have and i'll consider it on the todo list.
1204
> > let me know the minimal editing capabilities you would
1205
> > like to have and i'll consider it on the todo list.
991
1207
> For me the minimum would be to able to add a complete
992
1208
> line anywhere in the merged window.