Root/
| 1 | schhist - Graphical revision history of schematics |
| 2 | ================================================== |
| 3 | |
| 4 | The schhist system walks the git revision history of a KiCad project |
| 5 | and produces Web-browseable graphical differences of the schematics. |
| 6 | |
| 7 | It does so by checking out each revision from git, sanitizing the |
| 8 | project to prevent problems what would cause eeschema to stop and |
| 9 | display an error dialog, using eeschema to "plot" the project to |
| 10 | Postscript, making some small adjustments (position, line width) to |
| 11 | the Postscript, converting it to PPM with Ghostscript, making a |
| 12 | pixel-wise comparison of revisions, and arranging the resulting |
| 13 | images in an HTML page. Further more, sub-pages with magnifications |
| 14 | and PDF files are generated. |
| 15 | |
| 16 | |
| 17 | This work is distributed under the terms of the GNU GENERAL PUBLIC |
| 18 | LICENSE, Version 2: |
| 19 | |
| 20 | This program is free software; you can redistribute it and/or modify |
| 21 | it under the terms of the GNU General Public License as published by |
| 22 | the Free Software Foundation; either version 2 of the License, or |
| 23 | (at your option) any later version. |
| 24 | |
| 25 | For your convenience, a copy of the complete license has been included |
| 26 | in the file COPYING.GPLv2. |
| 27 | |
| 28 | |
| 29 | schhist2web |
| 30 | ----------- |
| 31 | |
| 32 | Web-browseable graphical revision history of schematics |
| 33 | ... |
| 34 | |
| 35 | |
| 36 | subschname2file |
| 37 | --------------- |
| 38 | |
| 39 | Translate a subsheet's name to the sheet file's name |
| 40 | ... |
| 41 | |
| 42 | |
| 43 | sanitize-profile |
| 44 | ---------------- |
| 45 | |
| 46 | Remove items from a KiCad profile that may cause an upset |
| 47 | ... |
| 48 | |
| 49 | |
| 50 | sanitize-schem |
| 51 | -------------- |
| 52 | |
| 53 | Remove items from KiCad schematics that may cause an upset |
| 54 | ... |
| 55 | |
| 56 | |
| 57 | gitsch2ps |
| 58 | --------- |
| 59 | |
| 60 | Generate PS files for KiCad schematics in git |
| 61 | ... |
| 62 | |
| 63 | |
| 64 | normalizeschps |
| 65 | -------------- |
| 66 | |
| 67 | Normalize eeschema Postscript |
| 68 | ... |
| 69 | |
| 70 | |
| 71 | ppmdiff |
| 72 | ------- |
| 73 | |
| 74 | Mark differences in two PPM files |
| 75 | ... |
| 76 | |
| 77 | |
| 78 | schps2pdf |
| 79 | --------- |
| 80 | |
| 81 | Generate PDF files from Eeschema Postscript |
| 82 | ... |
| 83 | |
| 84 | |
| 85 | schps2ppm |
| 86 | --------- |
| 87 | |
| 88 | Generate PPM files from normalized Eeschema Postscript |
| 89 | ... |
| 90 | |
| 91 | |
| 92 | gitenealogy |
| 93 | ----------- |
| 94 | |
| 95 | Trace the ancestry of a file in git across renames |
| 96 | ... |
| 97 | |
| 98 | |
| 99 | gitwhoareyounow |
| 100 | --------------- |
| 101 | |
| 102 | gitwhoareyounow is used to find a single identity for files that have been |
| 103 | renamed in the history of a project. |
| 104 | |
| 105 | E.g., if a file foo.c is created in revision 1 (assuming successive revisions |
| 106 | numbered 1, 2, etc.) and renamed to bar.c in revision 2, gitwhoareyounow |
| 107 | would then return the name bar.c for this file in any revision we consider. |
| 108 | |
| 109 | gitwhoareyounow has to be given a repository in which the historical commit |
| 110 | has been checked out, and the name the file had in that commit. |
| 111 | |
| 112 | Example: |
| 113 | |
| 114 | $ git init |
| 115 | $ date >foo.c |
| 116 | # git add foo.c |
| 117 | # git commit -m "foo.c, rev 1" |
| 118 | $ git mv foo.c bar.c |
| 119 | $ git commit -m "foo.c renamed to bar.c, rev 2" |
| 120 | $ git checkout HEAD~1 |
| 121 | $ ls |
| 122 | foo.c |
| 123 | $ gitwhoareyounow . foo.c |
| 124 | bar.c |
| 125 | |
| 126 | |
| 127 | Multiple files may use the same identity |
| 128 | - - - - - - - - - - - - - - - - - - - - |
| 129 | |
| 130 | E.g., if a file foo.c is created in revision 1, deleted in revision 3, and |
| 131 | then a new file named foo.c is created in revision 4, gitwhoareyounow would |
| 132 | call both of them foo.c |
| 133 | |
| 134 | |
| 135 | Multiple files sharing the same identity can conflict |
| 136 | - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| 137 | |
| 138 | E.g., taking the first example with foo.c renamed to bar.c in revision 3, if |
| 139 | a file bar.c existed in revision 1 but was deleted in revision 2, |
| 140 | gitwhoareyounow running on revision 1 would identify both the foo.c and the |
| 141 | bar.c as bar.c |
| 142 | |
| 143 | gitwhoareyounow does not try to resolve such conflicts. This is already |
| 144 | complex enough as it is :-) |
| 145 |
Branches:
master
