mattpocock / graph-docs-cli

Revolutionise your docs using knowledge graphs built from Markdown
95 stars 1 forks source link

git requirement? #10

Closed lineus closed 2 years ago

lineus commented 2 years ago

just went through the quickstart and I needed to standup a git repo with at least one commit in order to get the expected dev server running.

I'll paste the output of the failed run here.

~ $ cd dev/jstgit
~/dev/jstgit $ mkdir vizdocs
~/dev/jstgit $ cd !$
~/dev/jstgit $ cd vizdocs
~/dev/jstgit/vizdocs $ npm init -y
Wrote to /Users/lineus/dev/jstgit/vizdocs/package.json:

{
  "name": "vizdocs",
  "version": "0.0.1",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "kev <lineus@gmail.com> (https://lineus.dev/)",
  "license": "WTFPL"
}

~/dev/jstgit/vizdocs $ mkdir modules
~/dev/jstgit/vizdocs $ touch ./modules/{one,two}.md
~/dev/jstgit/vizdocs $ echo '---\ndeps: [one]\n---\n' > ./modules/two.md
~/dev/jstgit/vizdocs $ cat !$
~/dev/jstgit/vizdocs $ cat ./modules/two.md
---
deps: [one]
---

~/dev/jstgit/vizdocs $ yarn add -D graph-docs-cli
yarn add v1.22.18
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
success Saved 55 new dependencies.
info Direct dependencies
└─ graph-docs-cli@0.0.10
info All dependencies
├─ accepts@1.3.8
├─ anymatch@3.1.2
├─ argparse@1.0.10
├─ array-flatten@1.1.1
├─ binary-extensions@2.2.0
├─ body-parser@1.19.2
├─ braces@3.0.2
├─ chokidar@3.5.3
├─ commander@9.2.0
├─ content-disposition@0.5.4
├─ cookie-signature@1.0.6
├─ cookie@0.4.2
├─ destroy@1.0.4
├─ ee-first@1.1.1
├─ esprima@4.0.1
├─ express@4.17.3
├─ fill-range@7.0.1
├─ finalhandler@1.1.2
├─ forwarded@0.2.0
├─ front-matter@4.0.2
├─ fsevents@2.3.2
├─ glob-parent@5.1.2
├─ graph-docs-cli@0.0.10
├─ inherits@2.0.4
├─ ipaddr.js@1.9.1
├─ is-binary-path@2.1.0
├─ is-extglob@2.1.1
├─ is-glob@4.0.3
├─ is-number@7.0.0
├─ js-yaml@3.14.1
├─ media-typer@0.3.0
├─ merge-descriptors@1.0.1
├─ methods@1.1.2
├─ mime-db@1.52.0
├─ mime-types@2.1.35
├─ mime@1.6.0
├─ ms@2.0.0
├─ negotiator@0.6.3
├─ normalize-path@3.0.0
├─ path-to-regexp@0.1.7
├─ picomatch@2.3.1
├─ proxy-addr@2.0.7
├─ raw-body@2.4.3
├─ readdirp@3.6.0
├─ safer-buffer@2.1.2
├─ serve-static@1.14.2
├─ sprintf-js@1.0.3
├─ statuses@1.5.0
├─ to-regex-range@5.0.1
├─ toidentifier@1.0.1
├─ unpipe@1.0.0
├─ utils-merge@1.0.1
├─ vary@1.1.2
├─ ws@8.5.0
└─ zod@3.14.4
✨  Done in 1.51s.
~/dev/jstgit/vizdocs $ yarn graph-docs dev "./modules/*.md"
yarn run v1.22.18
$ /Users/lineus/dev/jstgit/vizdocs/node_modules/.bin/graph-docs dev './modules/*.md'
warning: Not a git repository. Use --no-index to compare two paths outside a working tree
usage: git diff --no-index [<options>] <path> <path>

Diff output format options
    -p, --patch           generate patch
    -s, --no-patch        suppress diff output
    -u                    generate patch
    -U, --unified[=<n>]   generate diffs with <n> lines context
    -W, --function-context
                          generate diffs with <n> lines context
    --raw                 generate the diff in raw format
    --patch-with-raw      synonym for '-p --raw'
    --patch-with-stat     synonym for '-p --stat'
    --numstat             machine friendly --stat
    --shortstat           output only the last line of --stat
    -X, --dirstat[=<param1,param2>...]
                          output the distribution of relative amount of changes for each sub-directory
    --cumulative          synonym for --dirstat=cumulative
    --dirstat-by-file[=<param1,param2>...]
                          synonym for --dirstat=files,param1,param2...
    --check               warn if changes introduce conflict markers or whitespace errors
    --summary             condensed summary such as creations, renames and mode changes
    --name-only           show only names of changed files
    --name-status         show only names and status of changed files
    --stat[=<width>[,<name-width>[,<count>]]]
                          generate diffstat
    --stat-width <width>  generate diffstat with a given width
    --stat-name-width <width>
                          generate diffstat with a given name width
    --stat-graph-width <width>
                          generate diffstat with a given graph width
    --stat-count <count>  generate diffstat with limited lines
    --compact-summary     generate compact summary in diffstat
    --binary              output a binary diff that can be applied
    --full-index          show full pre- and post-image object names on the "index" lines
    --color[=<when>]      show colored diff
    --ws-error-highlight <kind>
                          highlight whitespace errors in the 'context', 'old' or 'new' lines in the diff
    -z                    do not munge pathnames and use NULs as output field terminators in --raw or --numstat
    --abbrev[=<n>]        use <n> digits to display object names
    --src-prefix <prefix>
                          show the given source prefix instead of "a/"
    --dst-prefix <prefix>
                          show the given destination prefix instead of "b/"
    --line-prefix <prefix>
                          prepend an additional prefix to every line of output
    --no-prefix           do not show any source or destination prefix
    --inter-hunk-context <n>
                          show context between diff hunks up to the specified number of lines
    --output-indicator-new <char>
                          specify the character to indicate a new line instead of '+'
    --output-indicator-old <char>
                          specify the character to indicate an old line instead of '-'
    --output-indicator-context <char>
                          specify the character to indicate a context instead of ' '

Diff rename options
    -B, --break-rewrites[=<n>[/<m>]]
                          break complete rewrite changes into pairs of delete and create
    -M, --find-renames[=<n>]
                          detect renames
    -D, --irreversible-delete
                          omit the preimage for deletes
    -C, --find-copies[=<n>]
                          detect copies
    --find-copies-harder  use unmodified files as source to find copies
    --no-renames          disable rename detection
    --rename-empty        use empty blobs as rename source
    --follow              continue listing the history of a file beyond renames
    -l <n>                prevent rename/copy detection if the number of rename/copy targets exceeds given limit

Diff algorithm options
    --minimal             produce the smallest possible diff
    -w, --ignore-all-space
                          ignore whitespace when comparing lines
    -b, --ignore-space-change
                          ignore changes in amount of whitespace
    --ignore-space-at-eol
                          ignore changes in whitespace at EOL
    --ignore-cr-at-eol    ignore carrier-return at the end of line
    --ignore-blank-lines  ignore changes whose lines are all blank
    -I, --ignore-matching-lines <regex>
                          ignore changes whose all lines match <regex>
    --indent-heuristic    heuristic to shift diff hunk boundaries for easy reading
    --patience            generate diff using the "patience diff" algorithm
    --histogram           generate diff using the "histogram diff" algorithm
    --diff-algorithm <algorithm>
                          choose a diff algorithm
    --anchored <text>     generate diff using the "anchored diff" algorithm
    --word-diff[=<mode>]  show word diff, using <mode> to delimit changed words
    --word-diff-regex <regex>
                          use <regex> to decide what a word is
    --color-words[=<regex>]
                          equivalent to --word-diff=color --word-diff-regex=<regex>
    --color-moved[=<mode>]
                          moved lines of code are colored differently
    --color-moved-ws <mode>
                          how white spaces are ignored in --color-moved

Other diff options
    --relative[=<prefix>]
                          when run from subdir, exclude changes outside and show relative paths
    -a, --text            treat all files as text
    -R                    swap two inputs, reverse the diff
    --exit-code           exit with 1 if there were differences, 0 otherwise
    --quiet               disable all output of the program
    --ext-diff            allow an external diff helper to be executed
    --textconv            run external text conversion filters when comparing binary files
    --ignore-submodules[=<when>]
                          ignore changes to submodules in the diff generation
    --submodule[=<format>]
                          specify how differences in submodules are shown
    --ita-invisible-in-index
                          hide 'git add -N' entries from the index
    --ita-visible-in-index
                          treat 'git add -N' entries as real in the index
    -S <string>           look for differences that change the number of occurrences of the specified string
    -G <regex>            look for differences that change the number of occurrences of the specified regex
    --pickaxe-all         show all changes in the changeset with -S or -G
    --pickaxe-regex       treat <string> in -S as extended POSIX regular expression
    -O <file>             control the order in which files appear in the output
    --rotate-to <path>    show the change in the specified path first
    --skip-to <path>      skip the output to the specified path
    --find-object <object-id>
                          look for differences that change the number of occurrences of the specified object
    --diff-filter [(A|C|D|M|R|T|U|X|B)...[*]]
                          select files by diff type
    --output <file>       Output to a specific file

node:internal/errors:844
  const err = new Error(message);
              ^

Error: Command failed: git diff --name-only HEAD
warning: Not a git repository. Use --no-index to compare two paths outside a working tree
usage: git diff --no-index [<options>] <path> <path>

Diff output format options
    -p, --patch           generate patch
    -s, --no-patch        suppress diff output
    -u                    generate patch
    -U, --unified[=<n>]   generate diffs with <n> lines context
    -W, --function-context
                          generate diffs with <n> lines context
    --raw                 generate the diff in raw format
    --patch-with-raw      synonym for '-p --raw'
    --patch-with-stat     synonym for '-p --stat'
    --numstat             machine friendly --stat
    --shortstat           output only the last line of --stat
    -X, --dirstat[=<param1,param2>...]
                          output the distribution of relative amount of changes for each sub-directory
    --cumulative          synonym for --dirstat=cumulative
    --dirstat-by-file[=<param1,param2>...]
                          synonym for --dirstat=files,param1,param2...
    --check               warn if changes introduce conflict markers or whitespace errors
    --summary             condensed summary such as creations, renames and mode changes
    --name-only           show only names of changed files
    --name-status         show only names and status of changed files
    --stat[=<width>[,<name-width>[,<count>]]]
                          generate diffstat
    --stat-width <width>  generate diffstat with a given width
    --stat-name-width <width>
                          generate diffstat with a given name width
    --stat-graph-width <width>
                          generate diffstat with a given graph width
    --stat-count <count>  generate diffstat with limited lines
    --compact-summary     generate compact summary in diffstat
    --binary              output a binary diff that can be applied
    --full-index          show full pre- and post-image object names on the "index" lines
    --color[=<when>]      show colored diff
    --ws-error-highlight <kind>
                          highlight whitespace errors in the 'context', 'old' or 'new' lines in the diff
    -z                    do not munge pathnames and use NULs as output field terminators in --raw or --numstat
    --abbrev[=<n>]        use <n> digits to display object names
    --src-prefix <prefix>
                          show the given source prefix instead of "a/"
    --dst-prefix <prefix>
                          show the given destination prefix instead of "b/"
    --line-prefix <prefix>
                          prepend an additional prefix to every line of output
    --no-prefix           do not show any source or destination prefix
    --inter-hunk-context <n>
                          show context between diff hunks up to the specified number of lines
    --output-indicator-new <char>
                          specify the character to indicate a new line instead of '+'
    --output-indicator-old <char>
                          specify the character to indicate an old line instead of '-'
    --output-indicator-context <char>
                          specify the character to indicate a context instead of ' '

Diff rename options
    -B, --break-rewrites[=<n>[/<m>]]
                          break complete rewrite changes into pairs of delete and create
    -M, --find-renames[=<n>]
                          detect renames
    -D, --irreversible-delete
                          omit the preimage for deletes
    -C, --find-copies[=<n>]
                          detect copies
    --find-copies-harder  use unmodified files as source to find copies
    --no-renames          disable rename detection
    --rename-empty        use empty blobs as rename source
    --follow              continue listing the history of a file beyond renames
    -l <n>                prevent rename/copy detection if the number of rename/copy targets exceeds given limit

Diff algorithm options
    --minimal             produce the smallest possible diff
    -w, --ignore-all-space
                          ignore whitespace when comparing lines
    -b, --ignore-space-change
                          ignore changes in amount of whitespace
    --ignore-space-at-eol
                          ignore changes in whitespace at EOL
    --ignore-cr-at-eol    ignore carrier-return at the end of line
    --ignore-blank-lines  ignore changes whose lines are all blank
    -I, --ignore-matching-lines <regex>
                          ignore changes whose all lines match <regex>
    --indent-heuristic    heuristic to shift diff hunk boundaries for easy reading
    --patience            generate diff using the "patience diff" algorithm
    --histogram           generate diff using the "histogram diff" algorithm
    --diff-algorithm <algorithm>
                          choose a diff algorithm
    --anchored <text>     generate diff using the "anchored diff" algorithm
    --word-diff[=<mode>]  show word diff, using <mode> to delimit changed words
    --word-diff-regex <regex>
                          use <regex> to decide what a word is
    --color-words[=<regex>]
                          equivalent to --word-diff=color --word-diff-regex=<regex>
    --color-moved[=<mode>]
                          moved lines of code are colored differently
    --color-moved-ws <mode>
                          how white spaces are ignored in --color-moved

Other diff options
    --relative[=<prefix>]
                          when run from subdir, exclude changes outside and show relative paths
    -a, --text            treat all files as text
    -R                    swap two inputs, reverse the diff
    --exit-code           exit with 1 if there were differences, 0 otherwise
    --quiet               disable all output of the program
    --ext-diff            allow an external diff helper to be executed
    --textconv            run external text conversion filters when comparing binary files
    --ignore-submodules[=<when>]
                          ignore changes to submodules in the diff generation
    --submodule[=<format>]
                          specify how differences in submodules are shown
    --ita-invisible-in-index
                          hide 'git add -N' entries from the index
    --ita-visible-in-index
                          treat 'git add -N' entries as real in the index
    -S <string>           look for differences that change the number of occurrences of the specified string
    -G <regex>            look for differences that change the number of occurrences of the specified regex
    --pickaxe-all         show all changes in the changeset with -S or -G
    --pickaxe-regex       treat <string> in -S as extended POSIX regular expression
    -O <file>             control the order in which files appear in the output
    --rotate-to <path>    show the change in the specified path first
    --skip-to <path>      skip the output to the specified path
    --find-object <object-id>
                          look for differences that change the number of occurrences of the specified object
    --diff-filter [(A|C|D|M|R|T|U|X|B)...[*]]
                          select files by diff type
    --output <file>       Output to a specific file

    at checkExecSyncError (node:child_process:828:11)
    at execSync (node:child_process:899:15)
    at getDotfile (/Users/lineus/dev/jstgit/vizdocs/node_modules/graph-docs-cli/bin/dotfile.js:42:61)
    at async startServer (/Users/lineus/dev/jstgit/vizdocs/node_modules/graph-docs-cli/bin/startServer.js:36:19) {
  status: 129,
  signal: null,
  output: [
    null,
    Buffer(0) [Uint8Array] [],
    Buffer(7268) [Uint8Array] [
      119,  97, 114, 110, 105, 110, 103,  58,  32,  78, 111, 116,
       32,  97,  32, 103, 105, 116,  32, 114, 101, 112, 111, 115,
      105, 116, 111, 114, 121,  46,  32,  85, 115, 101,  32,  45,
       45, 110, 111,  45, 105, 110, 100, 101, 120,  32, 116, 111,
       32,  99, 111, 109, 112,  97, 114, 101,  32, 116, 119, 111,
       32, 112,  97, 116, 104, 115,  32, 111, 117, 116, 115, 105,
      100, 101,  32,  97,  32, 119, 111, 114, 107, 105, 110, 103,
       32, 116, 114, 101, 101,  10, 117, 115,  97, 103, 101,  58,
       32, 103, 105, 116,
      ... 7168 more items
    ]
  ],
  pid: 22096,
  stdout: Buffer(0) [Uint8Array] [],
  stderr: Buffer(7268) [Uint8Array] [
    119,  97, 114, 110, 105, 110, 103,  58,  32,  78, 111, 116,
     32,  97,  32, 103, 105, 116,  32, 114, 101, 112, 111, 115,
    105, 116, 111, 114, 121,  46,  32,  85, 115, 101,  32,  45,
     45, 110, 111,  45, 105, 110, 100, 101, 120,  32, 116, 111,
     32,  99, 111, 109, 112,  97, 114, 101,  32, 116, 119, 111,
     32, 112,  97, 116, 104, 115,  32, 111, 117, 116, 115, 105,
    100, 101,  32,  97,  32, 119, 111, 114, 107, 105, 110, 103,
     32, 116, 114, 101, 101,  10, 117, 115,  97, 103, 101,  58,
     32, 103, 105, 116,
    ... 7168 more items
  ]
}

Node.js v17.6.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
~/dev/jstgit/vizdocs $
lineus commented 2 years ago

I can put in a PR for the quickstart docs if you like.

mattpocock commented 2 years ago

Thanks for the detailed report! Found a fix

mattpocock commented 2 years ago

Released in 0.0.11