Diff checker
Author: g | 2025-04-24
File; Windows: diff-checker-web-setup-{VERSION}.exe: Mac Diff-Checker-{VERSION}.dmg: Linux: diff-checker-{VERSION}-i386.AppImage diff-checker-{VERSION}-x86_64.AppImage:
GitHub - CodeLeom/diff-checker: Code/text Diff Checker is a
What's new in this version: - "Restore after commit" fails to restore in some situations.- "Show Log" fails from the merge dialog.- spell checker misses last char in a word.- shell column handler not registered.- Crash closing properties dialog.- Ignored items always set global ignores.- newline symbol is always the same in TortoiseMerge.- Crash in log dialog.- Crash in moved-blocks detection in TortoiseMerge.- unified diff shows absolute paths.- spurious NUL chars shown in blame.- Wrong encoding detection in TortoiseBlame.- too many rename suggestions.- missing autocompletion for filenames with '-'.- Redirects not fully followed in repo browser.- moved-blocks detection changes diff blocks.- multi-rename renames the first file wrong.- Crash applying patch with urls.- TortoiseMerge: Double-click word should highlight whole word only.- TortoiseMerge: LocationBar highlights should respect all options in FindDlg.- resolving types of conflicts individually.- UI glitch renaming in tree view in repo browser.- Crash in TortoiseIDiff loading corrupted icon file.- Restore-after-commit leaves temp file flag.- Tagging with fixed externals revision fails if spaces in target path is used.- Remember the 'ignore ancestry' option.- Tri-State checkbox handling in repo browser.- Add "do this for all items" checkbox when removing multiple properties. What's new in this version: Bugs fixed:- The "go to next diff" in TortoiseMerge stopped at lines filtered with a regex- Changing the font in TortoiseMerge wasn't taking effect until a restart- When a filter was active in TMerge, filtered lines could still be handled as a diff- Changing the font in TMerge required a restart for the changes to take effect- On Win8 and later, the spell checker wasn't properly handled in case there's no appropriate dict available- Wording of the transfer speeds was wrong- The externals property dialog did not handle HEAD revisions properly- Autocompletion of filenames with umlauts in the commit dialog did not work- The LogFindCopyFrom feature did not work properly for a branch that wasn't created from HEAD- the conflict resolve buttons were not enabled in TortoiseMerge- TortoiseMerge could hang with "ignore comments" enabled- The patch window in TMerge could be shown outside of a multi-monitor setup, i.e. not in a visible area- When deleting multiple files with unversioned files mixed in, the "do this for all unversioned/modified files" still showed a lot of error messages for unversioned files- "Split lines" in the commit dialog with a log width marker set lead to memory exhaustion- The tsvn:mergelogtemplatemsgtitlebottom property didn't work- Creating an external via right-dragging if the name contained a space failed- certain urls were not recognized as resulting in paths that are not valid on Windowsdiff-checker/LICENSE at master trembacz/diff-checker - GitHub
Spell Checker: Data Structures using CHomework from Harvard's Introduction to Computer Science CS50 hosted on eDX🎓 Problem Set 4Speller: Program that spell-checks a file after loading a dictionary of words from disk into memory. Includes run-time data output.I wrote the following functions in dictionary.c: load, hash, size, check, and unload. The other code and files were provided by the instructor.💡Lessons LearnedHash table and linked list data struturesImplementing knowledge of pointers *n and next n -> nextHashing words from a txt file into a hash tableReading into and subsequently unloading dictionary from memoryUsing malloc and command-line argument $ valgrind to prevent leaking memory and segmentation faultsRun time optimization and Big O analysis🚀 Getting StartedTo run this project locally:In your terminal, navigate to the filter directory and run the following commands$ clang -ggdb3 -O0 -Qunused-arguments -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow -c -o speller.o speller.cclang -ggdb3 -O0 -Qunused-arguments -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow -c -o dictionary.o dictionary.cclang -ggdb3 -O0 -Qunused-arguments -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow -o speller speller.o dictionary.o -lm🕹 How to UseIn your terminal, navigate to this folder's root directory and run the following command$ ./speller texts/foo.txtWhere foo is the name of a body of text found in the texts directory. There are 30 different texts to choose from. The output of the spell check program can be compared to the corresponding file in the keys directory for accuracy by running: bar.txt$ diff -y bar.txt keys/baz.txt">./speller texts/tolstoy.txt > bar.txt$ diff -y bar.txt keys/baz.txtWhere bar is the name of the program's output file and baz is the name of the text analyzedAnalysis of results:TIME IN load represents the number of seconds that speller spends executing the implementation of load.TIME IN check represents the number of seconds that speller spends, in total, executing the implementation. File; Windows: diff-checker-web-setup-{VERSION}.exe: Mac Diff-Checker-{VERSION}.dmg: Linux: diff-checker-{VERSION}-i386.AppImage diff-checker-{VERSION}-x86_64.AppImage:Diff Checker - Diff Checker to Compare Text Online - Text Cleaner
By default, git log does not generate any diff output. The optionsbelow can be used to show the changes made by each commit.Note that unless one of --diff-merges variants (including short-m, -c, --cc, and --dd options) is explicitly given, merge commitswill not show a diff, even if a diff format like --patch isselected, nor will they match search options like -S. The exceptionis when --first-parent is in use, in which case first-parent isthe default format for merge commits. -p -u --patch Generate patch (see Generating patch text with -p). -s --no-patch Suppress all output from the diff machinery. Useful forcommands like git show that show the patch by default tosquelch their output, or to cancel the effect of options like--patch, --stat earlier on the command line in an alias. -m Show diffs for merge commits in the default format. This issimilar to --diff-merges=on, except -m willproduce no output unless -p is given as well. -c Produce combined diff output for merge commits.Shortcut for --diff-merges=combined -p. --cc Produce dense combined diff output for merge commits.Shortcut for --diff-merges=dense-combined -p. --dd Produce diff with respect to first parent for both merge andregular commits.Shortcut for --diff-merges=first-parent -p. --remerge-diff Produce remerge-diff output for merge commits.Shortcut for --diff-merges=remerge -p. --no-diff-merges Synonym for --diff-merges=off. --diff-merges= Specify diff format to be used for merge commits. Default is`off` unless --first-parent is in use, inwhich case first-parent is the default.The following formats are supported: off, none Disable output of diffs for merge commits. Useful to overrideimplied value. on, m Make diff output for merge commits to be shown in the defaultformat. The default format can be changed usinglog.diffMerges configuration variable, whose default valueis separate. first-parent, 1 Show full diff with respect to first parent. This is the sameformat as --patch produces for non-merge commits. separate Show full diff with respect to each of parents.Separate log entry and diff is generated for each parent. combined, c Show differences from each of the parents to the mergeresult simultaneously instead of showing pairwise diff betweena parent and the result one at a time. Furthermore, it listsonly files which were modified from all parents. dense-combined, cc Further compress output produced by --diff-merges=combinedby omitting uninteresting hunks whose contents in the parentshave only two variants and the merge result picks one of themwithout modification. remerge, r Remerge two-parent merge commits to create a temporary treeobject—potentially containing files with conflict markersand such. A diff is then shown Are not affected by this setting. diff.mnemonicPrefix If set, git diff uses a prefix pair that is different from thestandard "a/" and "b/" depending on what is being compared. Whenthis configuration is in effect, reverse diff output also swapsthe order of the prefixes: git diff compares the (i)ndex and the (w)ork tree; git diff HEAD compares a (c)ommit and the (w)ork tree; git diff --cached compares a (c)ommit and the (i)ndex; git diff HEAD:file1 file2 compares an (o)bject and a (w)ork tree entity; git diff --no-index a b compares two non-git things (1) and (2). diff.noprefix If set, git diff does not show any source or destination prefix. diff.orderFile File indicating how to order files within a diff.See the -O option to git-diff[1] for details.If diff.orderFile is a relative pathname, it is treated asrelative to the top of the working tree. diff.renameLimit The number of files to consider when performing the copy/renamedetection; equivalent to the git diff option -l. This settinghas no effect if rename detection is turned off. diff.renames Whether and how Git detects renames. If set to "false",rename detection is disabled. If set to "true", basic renamedetection is enabled. If set to "copies" or "copy", Git willdetect copies, as well. Defaults to true. Note that thisaffects only git diff Porcelain like git-diff[1] andgit-log[1], and not lower level commands such asgit-diff-files[1]. diff.suppressBlankEmpty A boolean to inhibit the standard behavior of printing a spacebefore each empty output line. Defaults to false. diff.submodule Specify the format in which differences in submodules areshown. The "short" format just shows the names of the commitsat the beginning and end of the range. The "log" format liststhe commits in the range like git-submodule[1] summarydoes. The "diff" format shows an inline diff of the changedcontents of the submodule. Defaults to "short". diff.wordRegex A POSIX Extended Regular Expression used to determine what is a "word"when performing word-by-word difference calculations. Charactersequences that match the regular expression are "words", all othercharacters are ignorable whitespace. diff..command The custom diff driver command. See gitattributes[5]for details. diff..xfuncname The regular expression that the diff driver should use torecognize the hunk header. A built-in pattern may also be used.See gitattributes[5] for details. diff..binary Set this option to true to make the diff driver treat files asbinary. See gitattributes[5] for details. diff..textconv The command that the diff driver should call to generate thetext-converted version of a file. The result of theconversion is used to generate a human-readable diff. Seegitattributes[5] for details. diff..wordRegex The regular expression that the diff driver should use tosplit words in a line. See gitattributes[5] fordetails. diff..cachetextconv Set this option to true to make the diff driver cache the textconversion outputs. See gitattributes[5] for details. diff.tool Controls which diff tool is usedGitHub - dhebrink/file-diff-checker: Diff checker for files requiring
The custom diff driver command. See gitattributes[5]for details. diff..xfuncname The regular expression that the diff driver should use torecognize the hunk header. A built-in pattern may also be used.See gitattributes[5] for details. diff..binary Set this option to true to make the diff driver treat files asbinary. See gitattributes[5] for details. diff..textconv The command that the diff driver should call to generate thetext-converted version of a file. The result of theconversion is used to generate a human-readable diff. Seegitattributes[5] for details. diff..wordRegex The regular expression that the diff driver should use tosplit words in a line. See gitattributes[5] fordetails. diff..cachetextconv Set this option to true to make the diff driver cache the textconversion outputs. See gitattributes[5] for details. diff.tool Controls which diff tool is used by git-difftool[1].This variable overrides the value configured in merge.tool.The list below shows the valid built-in values.Any other value is treated as a custom diff tool and requiresthat a corresponding difftool..cmd variable is defined. diff.guitool Controls which diff tool is used by git-difftool[1] whenthe -g/--gui flag is specified. This variable overrides the valueconfigured in merge.guitool. The list below shows the validbuilt-in values. Any other value is treated as a custom diff tooland requires that a corresponding difftool..cmd variableis defined.araxisbccodecomparedeltawalkerdiffmergediffuseecmergeemergeexamdiffguiffygvimdiffkdiff3komparemeldnvimdiffopendiffp4mergesmergetkdiffvimdiffwinmergexxdiff diff.indentHeuristic Set this option to false to disable the default heuristicsthat shift diff hunk boundaries to make patches easier to read. diff.algorithm Choose a diff algorithm. The variants are as follows: default, myers The basic greedy diff algorithm. Currently, this is the default. minimal Spend extra time to make sure the smallest possible diff isproduced. patience Use "patience diff" algorithm when generating patches. histogram This algorithm extends the patience algorithm to "supportlow-occurrence common elements". diff.wsErrorHighlight Highlight whitespace errors in the context, old or newlines of the diff. Multiple values are separated by comma,none resets previous values, default reset the list tonew and all is a shorthand for old,new,context. Thewhitespace errors are colored with color.diff.whitespace.The command line option --ws-error-highlight=overrides this setting. diff.colorMoved If set to either a valid or a true value, moved linesin a diff are colored differently, for details of valid modessee --color-moved in git-diff[1]. If simplyGitHub - CodeLeom/diff-checker: Code/text Diff Checker is a
Renamedetection is enabled. If set to "copies" or "copy", Git willdetect copies, as well. Defaults to true. Note that thisaffects only git diff Porcelain like git-diff[1] andgit-log[1], and not lower level commands such asgit-diff-files[1]. diff.suppressBlankEmpty A boolean to inhibit the standard behavior of printing a spacebefore each empty output line. Defaults to false. diff.submodule Specify the format in which differences in submodules areshown. The "short" format just shows the names of the commitsat the beginning and end of the range. The "log" format liststhe commits in the range like git-submodule[1] summarydoes. The "diff" format shows an inline diff of the changedcontents of the submodule. Defaults to "short". diff.wordRegex A POSIX Extended Regular Expression used to determine what is a "word"when performing word-by-word difference calculations. Charactersequences that match the regular expression are "words", all othercharacters are ignorable whitespace. diff..command The custom diff driver command. See gitattributes[5]for details. diff..xfuncname The regular expression that the diff driver should use torecognize the hunk header. A built-in pattern may also be used.See gitattributes[5] for details. diff..binary Set this option to true to make the diff driver treat files asbinary. See gitattributes[5] for details. diff..textconv The command that the diff driver should call to generate thetext-converted version of a file. The result of theconversion is used to generate a human-readable diff. Seegitattributes[5] for details. diff..wordRegex The regular expression that the diff driver should use tosplit words in a line. See gitattributes[5] fordetails. diff..cachetextconv Set this option to true to make the diff driver cache the textconversion. File; Windows: diff-checker-web-setup-{VERSION}.exe: Mac Diff-Checker-{VERSION}.dmg: Linux: diff-checker-{VERSION}-i386.AppImage diff-checker-{VERSION}-x86_64.AppImage:diff-checker/LICENSE at master trembacz/diff-checker - GitHub
Level commands such asgit-diff-files[1]. diff.suppressBlankEmpty A boolean to inhibit the standard behavior of printing a spacebefore each empty output line. Defaults to false. diff.submodule Specify the format in which differences in submodules areshown. The "short" format just shows the names of the commitsat the beginning and end of the range. The "log" format liststhe commits in the range like git-submodule[1] summarydoes. The "diff" format shows an inline diff of the changedcontents of the submodule. Defaults to "short". diff.wordRegex A POSIX Extended Regular Expression used to determine what is a "word"when performing word-by-word difference calculations. Charactersequences that match the regular expression are "words", all othercharacters are ignorable whitespace. diff..command The custom diff driver command. See gitattributes[5]for details. diff..xfuncname The regular expression that the diff driver should use torecognize the hunk header. A built-in pattern may also be used.See gitattributes[5] for details. diff..binary Set this option to true to make the diff driver treat files asbinary. See gitattributes[5] for details. diff..textconv The command that the diff driver should call to generate thetext-converted version of a file. The result of theconversion is used to generate a human-readable diff. Seegitattributes[5] for details. diff..wordRegex The regular expression that the diff driver should use tosplit words in a line. See gitattributes[5] fordetails. diff..cachetextconv Set this option to true to make the diff driver cache the textconversion outputs. See gitattributes[5] for details. diff.tool Controls which diff tool is used by git-difftool[1].This variable overrides the value configured in merge.tool.The list below shows the valid built-in values.Any other valueComments
What's new in this version: - "Restore after commit" fails to restore in some situations.- "Show Log" fails from the merge dialog.- spell checker misses last char in a word.- shell column handler not registered.- Crash closing properties dialog.- Ignored items always set global ignores.- newline symbol is always the same in TortoiseMerge.- Crash in log dialog.- Crash in moved-blocks detection in TortoiseMerge.- unified diff shows absolute paths.- spurious NUL chars shown in blame.- Wrong encoding detection in TortoiseBlame.- too many rename suggestions.- missing autocompletion for filenames with '-'.- Redirects not fully followed in repo browser.- moved-blocks detection changes diff blocks.- multi-rename renames the first file wrong.- Crash applying patch with urls.- TortoiseMerge: Double-click word should highlight whole word only.- TortoiseMerge: LocationBar highlights should respect all options in FindDlg.- resolving types of conflicts individually.- UI glitch renaming in tree view in repo browser.- Crash in TortoiseIDiff loading corrupted icon file.- Restore-after-commit leaves temp file flag.- Tagging with fixed externals revision fails if spaces in target path is used.- Remember the 'ignore ancestry' option.- Tri-State checkbox handling in repo browser.- Add "do this for all items" checkbox when removing multiple properties.
2025-04-17What's new in this version: Bugs fixed:- The "go to next diff" in TortoiseMerge stopped at lines filtered with a regex- Changing the font in TortoiseMerge wasn't taking effect until a restart- When a filter was active in TMerge, filtered lines could still be handled as a diff- Changing the font in TMerge required a restart for the changes to take effect- On Win8 and later, the spell checker wasn't properly handled in case there's no appropriate dict available- Wording of the transfer speeds was wrong- The externals property dialog did not handle HEAD revisions properly- Autocompletion of filenames with umlauts in the commit dialog did not work- The LogFindCopyFrom feature did not work properly for a branch that wasn't created from HEAD- the conflict resolve buttons were not enabled in TortoiseMerge- TortoiseMerge could hang with "ignore comments" enabled- The patch window in TMerge could be shown outside of a multi-monitor setup, i.e. not in a visible area- When deleting multiple files with unversioned files mixed in, the "do this for all unversioned/modified files" still showed a lot of error messages for unversioned files- "Split lines" in the commit dialog with a log width marker set lead to memory exhaustion- The tsvn:mergelogtemplatemsgtitlebottom property didn't work- Creating an external via right-dragging if the name contained a space failed- certain urls were not recognized as resulting in paths that are not valid on Windows
2025-04-06Spell Checker: Data Structures using CHomework from Harvard's Introduction to Computer Science CS50 hosted on eDX🎓 Problem Set 4Speller: Program that spell-checks a file after loading a dictionary of words from disk into memory. Includes run-time data output.I wrote the following functions in dictionary.c: load, hash, size, check, and unload. The other code and files were provided by the instructor.💡Lessons LearnedHash table and linked list data struturesImplementing knowledge of pointers *n and next n -> nextHashing words from a txt file into a hash tableReading into and subsequently unloading dictionary from memoryUsing malloc and command-line argument $ valgrind to prevent leaking memory and segmentation faultsRun time optimization and Big O analysis🚀 Getting StartedTo run this project locally:In your terminal, navigate to the filter directory and run the following commands$ clang -ggdb3 -O0 -Qunused-arguments -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow -c -o speller.o speller.cclang -ggdb3 -O0 -Qunused-arguments -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow -c -o dictionary.o dictionary.cclang -ggdb3 -O0 -Qunused-arguments -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow -o speller speller.o dictionary.o -lm🕹 How to UseIn your terminal, navigate to this folder's root directory and run the following command$ ./speller texts/foo.txtWhere foo is the name of a body of text found in the texts directory. There are 30 different texts to choose from. The output of the spell check program can be compared to the corresponding file in the keys directory for accuracy by running: bar.txt$ diff -y bar.txt keys/baz.txt">./speller texts/tolstoy.txt > bar.txt$ diff -y bar.txt keys/baz.txtWhere bar is the name of the program's output file and baz is the name of the text analyzedAnalysis of results:TIME IN load represents the number of seconds that speller spends executing the implementation of load.TIME IN check represents the number of seconds that speller spends, in total, executing the implementation
2025-04-02By default, git log does not generate any diff output. The optionsbelow can be used to show the changes made by each commit.Note that unless one of --diff-merges variants (including short-m, -c, --cc, and --dd options) is explicitly given, merge commitswill not show a diff, even if a diff format like --patch isselected, nor will they match search options like -S. The exceptionis when --first-parent is in use, in which case first-parent isthe default format for merge commits. -p -u --patch Generate patch (see Generating patch text with -p). -s --no-patch Suppress all output from the diff machinery. Useful forcommands like git show that show the patch by default tosquelch their output, or to cancel the effect of options like--patch, --stat earlier on the command line in an alias. -m Show diffs for merge commits in the default format. This issimilar to --diff-merges=on, except -m willproduce no output unless -p is given as well. -c Produce combined diff output for merge commits.Shortcut for --diff-merges=combined -p. --cc Produce dense combined diff output for merge commits.Shortcut for --diff-merges=dense-combined -p. --dd Produce diff with respect to first parent for both merge andregular commits.Shortcut for --diff-merges=first-parent -p. --remerge-diff Produce remerge-diff output for merge commits.Shortcut for --diff-merges=remerge -p. --no-diff-merges Synonym for --diff-merges=off. --diff-merges= Specify diff format to be used for merge commits. Default is`off` unless --first-parent is in use, inwhich case first-parent is the default.The following formats are supported: off, none Disable output of diffs for merge commits. Useful to overrideimplied value. on, m Make diff output for merge commits to be shown in the defaultformat. The default format can be changed usinglog.diffMerges configuration variable, whose default valueis separate. first-parent, 1 Show full diff with respect to first parent. This is the sameformat as --patch produces for non-merge commits. separate Show full diff with respect to each of parents.Separate log entry and diff is generated for each parent. combined, c Show differences from each of the parents to the mergeresult simultaneously instead of showing pairwise diff betweena parent and the result one at a time. Furthermore, it listsonly files which were modified from all parents. dense-combined, cc Further compress output produced by --diff-merges=combinedby omitting uninteresting hunks whose contents in the parentshave only two variants and the merge result picks one of themwithout modification. remerge, r Remerge two-parent merge commits to create a temporary treeobject—potentially containing files with conflict markersand such. A diff is then shown
2025-04-15