From 2b3b3c28ace47f7d23df486052e6a7aa26a05e14 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 4 Feb 2009 01:11:35 +0100 Subject: [PATCH] Update Wednesday, 4th of February, Anno Domini MMIX, at the hour of the Buffalo Signed-off-by: Johannes Schindelin --- index.html | 98 +++++++++++++++++---------------------------------- source-1233706294.txt | 24 +++++++++++++ 2 files changed, 57 insertions(+), 65 deletions(-) create mode 100644 source-1233706294.txt diff --git a/index.html b/index.html index fcd13e7d48..732bc3d64f 100644 --- a/index.html +++ b/index.html @@ -1,17 +1,18 @@ - Dscho's blog + Dscho's Git log
-

Dscho's blog

+

Dscho's Git log

Table of contents:

- Older posts + Older posts

@@ -86,6 +86,35 @@
+
Wednesday, 4th of February, Anno Domini MMIX, at the hour of the Buffalo
+ +

Problems with split-topic-branches.sh

+ +

+

+ So my little script that should help me to split my topic branches does + not work properly. +

+ First some background: the idea was to let git blame do the hard work + to find overlapping changes, i.e. changes that would conflict when + changing the order (or skipping the first change, on which the next builds). +

+ The first problem with that approach: when lines are removed by one + commit, and the next commit touches the same location, git blame does + not find that the first commit is required by the second. +

+ Therefore I introduced a really slow reverse thing which tries to find + those commits whose removals survived until the parent of a particular + commit, but not further. +

+ However, it does not work properly. Basically, only context sizes that + span the whole files lead to conflict-free topic branches so far. +

+ As a consequence, I think I'll add an option --sprout to the revision + walker which will fake octopus merges (or a series of two-parent merges) + whenever it finds a perl of non-merge commits that are theoretically + independent, i.e. whose patches apply cleanly. +

Friday, 30th of January, Anno Domini MMIX, at the hour of the Buffalo

More valgrind fun

@@ -493,67 +522,6 @@ exec > pipe 2>&1 After having confused myself with several diverging/obsolete branches, I did indeed finally manage to send that patch series off. Woohoo.

-
Sunday, 25th of January, Anno Domini MMIX, at the hour of the Goat
-
-

Regular diff with word coloring (as opposed to word diff)

- -

-

- You know, if I were a bit faster with everything I do, I could do so much more! -

- For example, Junio's idea that you could keep showing a regular diff, only - coloring the words that have been removed/deleted. -

- Just imagine looking at the diff of a long line in LaTeX source code. It - should be much nicer to the eye to see the complete removed/added sentences - instead of one sentence with colored words in between, disrupting your read - flow. -

- Compare these two versions: -

- Regular diff with colored words: -

- -This sentence has a tyop in it.
- +This sentence has a typo in it.
-
-

- Word diff: -

- This sentence has a tyoptypo in it.
-
-

- And it should not be hard to do at all! -

- In diff_words_show(), we basically get the minus lines as - diff_words->minus and the plus lines as diff_words->plus. The - function then prepares the word lists and calls the xdiff engine to do all the - hard work, analyzing the result from xdiff and printing the lines in - fn_out_diff_words_aux(). -

- So all that would have to be changed would be to record the positions - of the removed/added words instead of outputting them, and at the end printing - the minus/plus buffers using the recorded information to color the words. -

- This would involve -

-

    -
  • adding two new members holding the offsets in the diff_words - struct, -
  • having a special handling for that mode in - fn_out_diff_words_aux() that appends the offsets and - returns, -
  • adding a function show_lines_with_colored_words() that - outputs a buffer with a given prefix ('-' or '+') and coloring the words at - given offsets with a given color, -
  • modify diff_words_show() to call that function for the "special - case: only removal" and at the end of the function, and -
  • disabling the fwrite() at the end of diff_words_show() for that - mode. -
-

- Of course, the hardest part is to find a nice user interface for that. Maybe - --colored-words? ☺ -

diff --git a/source-1233706294.txt b/source-1233706294.txt new file mode 100644 index 0000000000..4ff607e354 --- /dev/null +++ b/source-1233706294.txt @@ -0,0 +1,24 @@ +Problems with split-topic-branches.sh + +So my little script that should help me to split my topic branches does +not work properly. + +First some background: the idea was to let ''git blame'' do the hard work +to find overlapping changes, i.e. changes that would conflict when +changing the order (or skipping the first change, on which the next builds). + +The first problem with that approach: when lines are _removed_ by one +commit, and the next commit touches the same location, ''git blame'' does +not find that the first commit is required by the second. + +Therefore I introduced a really slow reverse thing which tries to find +those commits whose removals survived until the parent of a particular +commit, but not further. + +However, it does not work properly. Basically, only context sizes that +span the whole files lead to conflict-free topic branches so far. + +As a consequence, I think I'll add an option --sprout to the revision +walker which will fake octopus merges (or a series of two-parent merges) +whenever it finds a perl of non-merge commits that are theoretically +independent, i.e. whose patches apply cleanly. -- 2.11.4.GIT