{"thread":{"id":"65493","subject":"[PATCH RFC 1/2] t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"","startedAt":"2026-04-16T13:24:48Z","lastAt":"2026-07-13T05:50:36Z","messageCount":32,"participants":["Patrick Steinhardt","Elijah Newren","brian m. carlson","Junio C Hamano","Phillip Wood","Derrick Stolee","Oswald Buddenhagen","Johannes Schindelin","SZEDER Gábor","Kaartic Sivaraam"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"541737","messageId":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","threadId":"65493","inReplyTo":null,"subject":"[PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-16T13:24:29Z","receivedAt":"2026-04-16T13:24:47Z","isPatch":true,"body":"Hi,\n\nthis small patch series follows up on a discussion we had two years ago\nduring the Git Contributor's Summit in Berlin.\n\nI'm fully aware that this will likely result in some discussion, which\nis why I have labelled this as RFC. I'd be fine with a result of \"let's\nnot do it\" if we cannot agree on this step, but I think that the current\nlayout hurts discoverability quite a bit. Not only for newcomers, but\nI'm also struggling with it quite frequently.\n\nI also intentionally decided to send this close to the upcoming release\nso that the series can be merged early in the next release cycle if we\nwere to agree on it.\n\nI've tested this patch series with both GitLab [1] and GitHub [2].\n\nThanks!\n\nPatrick\n\n[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/544\n[2]: https://github.com/git/git/pull/2271\n\n---\nPatrick Steinhardt (2):\n      t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n      Move libgit.a sources into separate \"lib/\" directory\n\n .github/workflows/main.yml                         |   8 +-\n .gitmodules                                        |   2 +-\n Documentation/Makefile                             |   4 +-\n Makefile                                           | 762 ++++++++++-----------\n config.mak.uname                                   |  52 +-\n contrib/buildsystems/CMakeLists.txt                | 107 +--\n git.rc.in                                          |   2 +-\n abspath.c => lib/abspath.c                         |   0\n abspath.h => lib/abspath.h                         |   0\n add-interactive.c => lib/add-interactive.c         |   0\n add-interactive.h => lib/add-interactive.h         |   0\n add-patch.c => lib/add-patch.c                     |   0\n add-patch.h => lib/add-patch.h                     |   0\n advice.c => lib/advice.c                           |   0\n advice.h => lib/advice.h                           |   0\n alias.c => lib/alias.c                             |   0\n alias.h => lib/alias.h                             |   0\n alloc.c => lib/alloc.c                             |   0\n alloc.h => lib/alloc.h                             |   0\n apply.c => lib/apply.c                             |   0\n apply.h => lib/apply.h                             |   0\n archive-tar.c => lib/archive-tar.c                 |   0\n archive-zip.c => lib/archive-zip.c                 |   0\n archive.c => lib/archive.c                         |   0\n archive.h => lib/archive.h                         |   0\n attr.c => lib/attr.c                               |   0\n attr.h => lib/attr.h                               |   0\n banned.h => lib/banned.h                           |   0\n base85.c => lib/base85.c                           |   0\n base85.h => lib/base85.h                           |   0\n bisect.c => lib/bisect.c                           |   0\n bisect.h => lib/bisect.h                           |   0\n blame.c => lib/blame.c                             |   0\n blame.h => lib/blame.h                             |   0\n blob.c => lib/blob.c                               |   0\n blob.h => lib/blob.h                               |   0\n {block-sha1 => lib/block-sha1}/sha1.c              |   0\n {block-sha1 => lib/block-sha1}/sha1.h              |   0\n bloom.c => lib/bloom.c                             |   0\n bloom.h => lib/bloom.h                             |   0\n branch.c => lib/branch.c                           |   0\n branch.h => lib/branch.h                           |   0\n builtin.h => lib/builtin.h                         |   0\n bundle-uri.c => lib/bundle-uri.c                   |   0\n bundle-uri.h => lib/bundle-uri.h                   |   0\n bundle.c => lib/bundle.c                           |   0\n bundle.h => lib/bundle.h                           |   0\n cache-tree.c => lib/cache-tree.c                   |   0\n cache-tree.h => lib/cache-tree.h                   |   0\n cbtree.c => lib/cbtree.c                           |   0\n cbtree.h => lib/cbtree.h                           |   0\n chdir-notify.c => lib/chdir-notify.c               |   0\n chdir-notify.h => lib/chdir-notify.h               |   0\n checkout.c => lib/checkout.c                       |   0\n checkout.h => lib/checkout.h                       |   0\n chunk-format.c => lib/chunk-format.c               |   0\n chunk-format.h => lib/chunk-format.h               |   0\n color.c => lib/color.c                             |   0\n color.h => lib/color.h                             |   0\n column.c => lib/column.c                           |   0\n column.h => lib/column.h                           |   0\n combine-diff.c => lib/combine-diff.c               |   0\n commit-graph.c => lib/commit-graph.c               |   0\n commit-graph.h => lib/commit-graph.h               |   0\n commit-reach.c => lib/commit-reach.c               |   0\n commit-reach.h => lib/commit-reach.h               |   0\n commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n commit-slab.h => lib/commit-slab.h                 |   0\n commit.c => lib/commit.c                           |   0\n commit.h => lib/commit.h                           |   0\n common-exit.c => lib/common-exit.c                 |   0\n common-init.c => lib/common-init.c                 |   0\n common-init.h => lib/common-init.h                 |   0\n {compat => lib/compat}/.gitattributes              |   0\n {compat => lib/compat}/access.c                    |   0\n {compat => lib/compat}/apple-common-crypto.h       |   0\n {compat => lib/compat}/basename.c                  |   0\n {compat => lib/compat}/bswap.h                     |   0\n {compat => lib/compat}/compiler.h                  |   0\n {compat => lib/compat}/darwin/procinfo.c           |   0\n {compat => lib/compat}/disk.h                      |   0\n {compat => lib/compat}/fileno.c                    |   0\n {compat => lib/compat}/fopen.c                     |   0\n {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n .../compat}/fsmonitor/fsm-health-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-darwin.c  |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n .../compat}/fsmonitor/fsm-settings-darwin.c        |   0\n .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n {compat => lib/compat}/hstrerror.c                 |   0\n {compat => lib/compat}/inet_ntop.c                 |   0\n {compat => lib/compat}/inet_pton.c                 |   0\n {compat => lib/compat}/linux/procinfo.c            |   0\n {compat => lib/compat}/memmem.c                    |   0\n {compat => lib/compat}/mingw-posix.h               |   0\n {compat => lib/compat}/mingw.c                     |   0\n {compat => lib/compat}/mingw.h                     |   0\n {compat => lib/compat}/mkdir.c                     |   0\n {compat => lib/compat}/mmap.c                      |   0\n {compat => lib/compat}/msvc-posix.h                |   0\n {compat => lib/compat}/msvc.c                      |   0\n {compat => lib/compat}/msvc.h                      |   0\n {compat => lib/compat}/nedmalloc/License.txt       |   0\n {compat => lib/compat}/nedmalloc/Readme.txt        |   0\n {compat => lib/compat}/nedmalloc/malloc.c.h        |   0\n {compat => lib/compat}/nedmalloc/nedmalloc.c       |   0\n {compat => lib/compat}/nedmalloc/nedmalloc.h       |   0\n {compat => lib/compat}/nonblock.c                  |   0\n {compat => lib/compat}/nonblock.h                  |   0\n {compat => lib/compat}/obstack.c                   |   0\n {compat => lib/compat}/obstack.h                   |   0\n {compat => lib/compat}/open.c                      |   0\n {compat => lib/compat}/poll/poll.c                 |   0\n {compat => lib/compat}/poll/poll.h                 |   0\n {compat => lib/compat}/posix.h                     |   0\n {compat => lib/compat}/pread.c                     |   0\n {compat => lib/compat}/precompose_utf8.c           |   0\n {compat => lib/compat}/precompose_utf8.h           |   0\n {compat => lib/compat}/qsort_s.c                   |   0\n {compat => lib/compat}/regcomp_enhanced.c          |   0\n {compat => lib/compat}/regex/regcomp.c             |   0\n {compat => lib/compat}/regex/regex.c               |   0\n {compat => lib/compat}/regex/regex.h               |   0\n {compat => lib/compat}/regex/regex_internal.c      |   0\n {compat => lib/compat}/regex/regex_internal.h      |   0\n {compat => lib/compat}/regex/regexec.c             |   0\n {compat => lib/compat}/setenv.c                    |   0\n {compat => lib/compat}/sha1-chunked.c              |   0\n {compat => lib/compat}/sha1-chunked.h              |   0\n {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n {compat => lib/compat}/snprintf.c                  |   0\n {compat => lib/compat}/stat.c                      |   0\n {compat => lib/compat}/strcasestr.c                |   0\n {compat => lib/compat}/strdup.c                    |   0\n {compat => lib/compat}/strlcpy.c                   |   0\n {compat => lib/compat}/strtoimax.c                 |   0\n {compat => lib/compat}/strtoumax.c                 |   0\n {compat => lib/compat}/stub/procinfo.c             |   0\n {compat => lib/compat}/terminal.c                  |   0\n {compat => lib/compat}/terminal.h                  |   0\n {compat => lib/compat}/unsetenv.c                  |   0\n {compat => lib/compat}/vcbuild/.gitignore          |   0\n {compat => lib/compat}/vcbuild/README              |  10 +-\n {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n {compat => lib/compat}/vcbuild/include/utime.h     |   0\n {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n {compat => lib/compat}/win32.h                     |   0\n {compat => lib/compat}/win32/alloca.h              |   0\n {compat => lib/compat}/win32/dirent.c              |   0\n {compat => lib/compat}/win32/dirent.h              |   0\n {compat => lib/compat}/win32/flush.c               |   0\n {compat => lib/compat}/win32/git.manifest          |   0\n {compat => lib/compat}/win32/headless.c            |   0\n {compat => lib/compat}/win32/lazyload.h            |   0\n {compat => lib/compat}/win32/path-utils.c          |   0\n {compat => lib/compat}/win32/path-utils.h          |   0\n {compat => lib/compat}/win32/pthread.c             |   0\n {compat => lib/compat}/win32/pthread.h             |   0\n {compat => lib/compat}/win32/syslog.c              |   0\n {compat => lib/compat}/win32/syslog.h              |   0\n .../compat}/win32/trace2_win32_process_info.c      |   0\n {compat => lib/compat}/win32mmap.c                 |   0\n {compat => lib/compat}/winansi.c                   |   0\n {compat => lib/compat}/zlib-compat.h               |   0\n .../compiler-tricks}/not-constant.c                |   0\n config.c => lib/config.c                           |   0\n config.h => lib/config.h                           |   0\n connect.c => lib/connect.c                         |   0\n connect.h => lib/connect.h                         |   0\n connected.c => lib/connected.c                     |   0\n connected.h => lib/connected.h                     |   0\n convert.c => lib/convert.c                         |   0\n convert.h => lib/convert.h                         |   0\n copy.c => lib/copy.c                               |   0\n copy.h => lib/copy.h                               |   0\n credential.c => lib/credential.c                   |   0\n credential.h => lib/credential.h                   |   0\n csum-file.c => lib/csum-file.c                     |   0\n csum-file.h => lib/csum-file.h                     |   0\n ctype.c => lib/ctype.c                             |   0\n date.c => lib/date.c                               |   0\n date.h => lib/date.h                               |   0\n decorate.c => lib/decorate.c                       |   0\n decorate.h => lib/decorate.h                       |   0\n delta-islands.c => lib/delta-islands.c             |   0\n delta-islands.h => lib/delta-islands.h             |   0\n delta.h => lib/delta.h                             |   0\n diagnose.c => lib/diagnose.c                       |   0\n diagnose.h => lib/diagnose.h                       |   0\n diff-delta.c => lib/diff-delta.c                   |   0\n diff-lib.c => lib/diff-lib.c                       |   0\n diff-merges.c => lib/diff-merges.c                 |   0\n diff-merges.h => lib/diff-merges.h                 |   0\n diff-no-index.c => lib/diff-no-index.c             |   0\n diff.c => lib/diff.c                               |   0\n diff.h => lib/diff.h                               |   0\n diffcore-break.c => lib/diffcore-break.c           |   0\n diffcore-delta.c => lib/diffcore-delta.c           |   0\n diffcore-order.c => lib/diffcore-order.c           |   0\n diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n diffcore-rename.c => lib/diffcore-rename.c         |   0\n diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n diffcore.h => lib/diffcore.h                       |   0\n dir-iterator.c => lib/dir-iterator.c               |   0\n dir-iterator.h => lib/dir-iterator.h               |   0\n dir.c => lib/dir.c                                 |   0\n dir.h => lib/dir.h                                 |   0\n editor.c => lib/editor.c                           |   0\n editor.h => lib/editor.h                           |   0\n entry.c => lib/entry.c                             |   0\n entry.h => lib/entry.h                             |   0\n environment.c => lib/environment.c                 |   0\n environment.h => lib/environment.h                 |   0\n {ewah => lib/ewah}/bitmap.c                        |   0\n {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n {ewah => lib/ewah}/ewah_io.c                       |   0\n {ewah => lib/ewah}/ewah_rlw.c                      |   0\n {ewah => lib/ewah}/ewok.h                          |   0\n {ewah => lib/ewah}/ewok_rlw.h                      |   0\n exec-cmd.c => lib/exec-cmd.c                       |   0\n exec-cmd.h => lib/exec-cmd.h                       |   0\n fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n fetch-pack.c => lib/fetch-pack.c                   |   0\n fetch-pack.h => lib/fetch-pack.h                   |   0\n fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n for-each-ref.h => lib/for-each-ref.h               |   0\n fsck.c => lib/fsck.c                               |   0\n fsck.h => lib/fsck.h                               |   0\n fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n .../fsmonitor-path-utils.h                         |   0\n fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n fsmonitor.c => lib/fsmonitor.c                     |   0\n fsmonitor.h => lib/fsmonitor.h                     |   0\n gettext.c => lib/gettext.c                         |   0\n gettext.h => lib/gettext.h                         |   0\n git-compat-util.h => lib/git-compat-util.h         |   0\n git-curl-compat.h => lib/git-curl-compat.h         |   0\n git-zlib.c => lib/git-zlib.c                       |   0\n git-zlib.h => lib/git-zlib.h                       |   0\n gpg-interface.c => lib/gpg-interface.c             |   0\n gpg-interface.h => lib/gpg-interface.h             |   0\n graph.c => lib/graph.c                             |   0\n graph.h => lib/graph.h                             |   0\n grep.c => lib/grep.c                               |   0\n grep.h => lib/grep.h                               |   0\n hash-lookup.c => lib/hash-lookup.c                 |   0\n hash-lookup.h => lib/hash-lookup.h                 |   0\n hash.c => lib/hash.c                               |   0\n hash.h => lib/hash.h                               |   0\n hashmap.c => lib/hashmap.c                         |   0\n hashmap.h => lib/hashmap.h                         |   0\n help.c => lib/help.c                               |   0\n help.h => lib/help.h                               |   0\n hex-ll.c => lib/hex-ll.c                           |   0\n hex-ll.h => lib/hex-ll.h                           |   0\n hex.c => lib/hex.c                                 |   0\n hex.h => lib/hex.h                                 |   0\n hook.c => lib/hook.c                               |   0\n hook.h => lib/hook.h                               |   0\n http-walker.c => lib/http-walker.c                 |   0\n http.c => lib/http.c                               |   0\n http.h => lib/http.h                               |   0\n ident.c => lib/ident.c                             |   0\n ident.h => lib/ident.h                             |   0\n iterator.h => lib/iterator.h                       |   0\n json-writer.c => lib/json-writer.c                 |   0\n json-writer.h => lib/json-writer.h                 |   0\n khash.h => lib/khash.h                             |   0\n kwset.c => lib/kwset.c                             |   0\n kwset.h => lib/kwset.h                             |   0\n levenshtein.c => lib/levenshtein.c                 |   0\n levenshtein.h => lib/levenshtein.h                 |   0\n line-log.c => lib/line-log.c                       |   0\n line-log.h => lib/line-log.h                       |   0\n line-range.c => lib/line-range.c                   |   0\n line-range.h => lib/line-range.h                   |   0\n linear-assignment.c => lib/linear-assignment.c     |   0\n linear-assignment.h => lib/linear-assignment.h     |   0\n .../list-objects-filter-options.c                  |   0\n .../list-objects-filter-options.h                  |   0\n list-objects-filter.c => lib/list-objects-filter.c |   0\n list-objects-filter.h => lib/list-objects-filter.h |   0\n list-objects.c => lib/list-objects.c               |   0\n list-objects.h => lib/list-objects.h               |   0\n list.h => lib/list.h                               |   0\n lockfile.c => lib/lockfile.c                       |   0\n lockfile.h => lib/lockfile.h                       |   0\n log-tree.c => lib/log-tree.c                       |   0\n log-tree.h => lib/log-tree.h                       |   0\n loose.c => lib/loose.c                             |   0\n loose.h => lib/loose.h                             |   0\n ls-refs.c => lib/ls-refs.c                         |   0\n ls-refs.h => lib/ls-refs.h                         |   0\n mailinfo.c => lib/mailinfo.c                       |   0\n mailinfo.h => lib/mailinfo.h                       |   0\n mailmap.c => lib/mailmap.c                         |   0\n mailmap.h => lib/mailmap.h                         |   0\n match-trees.c => lib/match-trees.c                 |   0\n match-trees.h => lib/match-trees.h                 |   0\n mem-pool.c => lib/mem-pool.c                       |   0\n mem-pool.h => lib/mem-pool.h                       |   0\n merge-blobs.c => lib/merge-blobs.c                 |   0\n merge-blobs.h => lib/merge-blobs.h                 |   0\n merge-ll.c => lib/merge-ll.c                       |   0\n merge-ll.h => lib/merge-ll.h                       |   0\n merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n merge-ort.c => lib/merge-ort.c                     |   0\n merge-ort.h => lib/merge-ort.h                     |   0\n merge.c => lib/merge.c                             |   0\n merge.h => lib/merge.h                             |   0\n mergesort.h => lib/mergesort.h                     |   0\n midx-write.c => lib/midx-write.c                   |   0\n midx.c => lib/midx.c                               |   0\n midx.h => lib/midx.h                               |   0\n name-hash.c => lib/name-hash.c                     |   0\n name-hash.h => lib/name-hash.h                     |   0\n {negotiator => lib/negotiator}/default.c           |   0\n {negotiator => lib/negotiator}/default.h           |   0\n {negotiator => lib/negotiator}/noop.c              |   0\n {negotiator => lib/negotiator}/noop.h              |   0\n {negotiator => lib/negotiator}/skipping.c          |   0\n {negotiator => lib/negotiator}/skipping.h          |   0\n notes-cache.c => lib/notes-cache.c                 |   0\n notes-cache.h => lib/notes-cache.h                 |   0\n notes-merge.c => lib/notes-merge.c                 |   0\n notes-merge.h => lib/notes-merge.h                 |   0\n notes-utils.c => lib/notes-utils.c                 |   0\n notes-utils.h => lib/notes-utils.h                 |   0\n notes.c => lib/notes.c                             |   0\n notes.h => lib/notes.h                             |   0\n object-file-convert.c => lib/object-file-convert.c |   0\n object-file-convert.h => lib/object-file-convert.h |   0\n object-file.c => lib/object-file.c                 |   0\n object-file.h => lib/object-file.h                 |   0\n object-name.c => lib/object-name.c                 |   0\n object-name.h => lib/object-name.h                 |   0\n object.c => lib/object.c                           |   0\n object.h => lib/object.h                           |   0\n odb.c => lib/odb.c                                 |   0\n odb.h => lib/odb.h                                 |   0\n {odb => lib/odb}/source-files.c                    |   0\n {odb => lib/odb}/source-files.h                    |   0\n {odb => lib/odb}/source.c                          |   0\n {odb => lib/odb}/source.h                          |   0\n {odb => lib/odb}/streaming.c                       |   0\n {odb => lib/odb}/streaming.h                       |   0\n oid-array.c => lib/oid-array.c                     |   0\n oid-array.h => lib/oid-array.h                     |   0\n oidmap.c => lib/oidmap.c                           |   0\n oidmap.h => lib/oidmap.h                           |   0\n oidset.c => lib/oidset.c                           |   0\n oidset.h => lib/oidset.h                           |   0\n oidtree.c => lib/oidtree.c                         |   0\n oidtree.h => lib/oidtree.h                         |   0\n pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n pack-bitmap.c => lib/pack-bitmap.c                 |   0\n pack-bitmap.h => lib/pack-bitmap.h                 |   0\n pack-check.c => lib/pack-check.c                   |   0\n pack-mtimes.c => lib/pack-mtimes.c                 |   0\n pack-mtimes.h => lib/pack-mtimes.h                 |   0\n pack-objects.c => lib/pack-objects.c               |   0\n pack-objects.h => lib/pack-objects.h               |   0\n pack-refs.c => lib/pack-refs.c                     |   0\n pack-refs.h => lib/pack-refs.h                     |   0\n pack-revindex.c => lib/pack-revindex.c             |   0\n pack-revindex.h => lib/pack-revindex.h             |   0\n pack-write.c => lib/pack-write.c                   |   0\n pack.h => lib/pack.h                               |   0\n packfile.c => lib/packfile.c                       |   0\n packfile.h => lib/packfile.h                       |   0\n pager.c => lib/pager.c                             |   0\n pager.h => lib/pager.h                             |   0\n parallel-checkout.c => lib/parallel-checkout.c     |   0\n parallel-checkout.h => lib/parallel-checkout.h     |   0\n parse-options-cb.c => lib/parse-options-cb.c       |   0\n parse-options.c => lib/parse-options.c             |   0\n parse-options.h => lib/parse-options.h             |   0\n parse.c => lib/parse.c                             |   0\n parse.h => lib/parse.h                             |   0\n patch-delta.c => lib/patch-delta.c                 |   0\n patch-ids.c => lib/patch-ids.c                     |   0\n patch-ids.h => lib/patch-ids.h                     |   0\n path-walk.c => lib/path-walk.c                     |   0\n path-walk.h => lib/path-walk.h                     |   0\n path.c => lib/path.c                               |   0\n path.h => lib/path.h                               |   0\n pathspec.c => lib/pathspec.c                       |   0\n pathspec.h => lib/pathspec.h                       |   0\n pkt-line.c => lib/pkt-line.c                       |   0\n pkt-line.h => lib/pkt-line.h                       |   0\n preload-index.c => lib/preload-index.c             |   0\n preload-index.h => lib/preload-index.h             |   0\n pretty.c => lib/pretty.c                           |   0\n pretty.h => lib/pretty.h                           |   0\n prio-queue.c => lib/prio-queue.c                   |   0\n prio-queue.h => lib/prio-queue.h                   |   0\n progress.c => lib/progress.c                       |   0\n progress.h => lib/progress.h                       |   0\n promisor-remote.c => lib/promisor-remote.c         |   0\n promisor-remote.h => lib/promisor-remote.h         |   0\n prompt.c => lib/prompt.c                           |   0\n prompt.h => lib/prompt.h                           |   0\n protocol-caps.c => lib/protocol-caps.c             |   0\n protocol-caps.h => lib/protocol-caps.h             |   0\n protocol.c => lib/protocol.c                       |   0\n protocol.h => lib/protocol.h                       |   0\n prune-packed.c => lib/prune-packed.c               |   0\n prune-packed.h => lib/prune-packed.h               |   0\n pseudo-merge.c => lib/pseudo-merge.c               |   0\n pseudo-merge.h => lib/pseudo-merge.h               |   0\n quote.c => lib/quote.c                             |   0\n quote.h => lib/quote.h                             |   0\n range-diff.c => lib/range-diff.c                   |   0\n range-diff.h => lib/range-diff.h                   |   0\n reachable.c => lib/reachable.c                     |   0\n reachable.h => lib/reachable.h                     |   0\n read-cache-ll.h => lib/read-cache-ll.h             |   0\n read-cache.c => lib/read-cache.c                   |   0\n read-cache.h => lib/read-cache.h                   |   0\n rebase-interactive.c => lib/rebase-interactive.c   |   0\n rebase-interactive.h => lib/rebase-interactive.h   |   0\n rebase.c => lib/rebase.c                           |   0\n rebase.h => lib/rebase.h                           |   0\n ref-filter.c => lib/ref-filter.c                   |   0\n ref-filter.h => lib/ref-filter.h                   |   0\n reflog-walk.c => lib/reflog-walk.c                 |   0\n reflog-walk.h => lib/reflog-walk.h                 |   0\n reflog.c => lib/reflog.c                           |   0\n reflog.h => lib/reflog.h                           |   0\n refs.c => lib/refs.c                               |   0\n refs.h => lib/refs.h                               |   0\n {refs => lib/refs}/debug.c                         |   0\n {refs => lib/refs}/files-backend.c                 |   0\n {refs => lib/refs}/iterator.c                      |   0\n {refs => lib/refs}/packed-backend.c                |   0\n {refs => lib/refs}/packed-backend.h                |   0\n {refs => lib/refs}/ref-cache.c                     |   0\n {refs => lib/refs}/ref-cache.h                     |   0\n {refs => lib/refs}/refs-internal.h                 |   0\n {refs => lib/refs}/reftable-backend.c              |   0\n refspec.c => lib/refspec.c                         |   0\n refspec.h => lib/refspec.h                         |   0\n {reftable => lib/reftable}/LICENSE                 |   0\n {reftable => lib/reftable}/basics.c                |   0\n {reftable => lib/reftable}/basics.h                |   0\n {reftable => lib/reftable}/block.c                 |   0\n {reftable => lib/reftable}/block.h                 |   0\n {reftable => lib/reftable}/blocksource.c           |   0\n {reftable => lib/reftable}/blocksource.h           |   0\n {reftable => lib/reftable}/constants.h             |   0\n {reftable => lib/reftable}/error.c                 |   0\n {reftable => lib/reftable}/fsck.c                  |   0\n {reftable => lib/reftable}/iter.c                  |   0\n {reftable => lib/reftable}/iter.h                  |   0\n {reftable => lib/reftable}/merged.c                |   0\n {reftable => lib/reftable}/merged.h                |   0\n {reftable => lib/reftable}/pq.c                    |   0\n {reftable => lib/reftable}/pq.h                    |   0\n {reftable => lib/reftable}/record.c                |   0\n {reftable => lib/reftable}/record.h                |   0\n {reftable => lib/reftable}/reftable-basics.h       |   0\n {reftable => lib/reftable}/reftable-block.h        |   0\n {reftable => lib/reftable}/reftable-blocksource.h  |   0\n {reftable => lib/reftable}/reftable-constants.h    |   0\n {reftable => lib/reftable}/reftable-error.h        |   0\n {reftable => lib/reftable}/reftable-fsck.h         |   0\n {reftable => lib/reftable}/reftable-iterator.h     |   0\n {reftable => lib/reftable}/reftable-merged.h       |   0\n {reftable => lib/reftable}/reftable-record.h       |   0\n {reftable => lib/reftable}/reftable-stack.h        |   0\n {reftable => lib/reftable}/reftable-system.h       |   0\n {reftable => lib/reftable}/reftable-table.h        |   0\n {reftable => lib/reftable}/reftable-writer.h       |   0\n {reftable => lib/reftable}/stack.c                 |   0\n {reftable => lib/reftable}/stack.h                 |   0\n {reftable => lib/reftable}/system.c                |   0\n {reftable => lib/reftable}/system.h                |   0\n {reftable => lib/reftable}/table.c                 |   0\n {reftable => lib/reftable}/table.h                 |   0\n {reftable => lib/reftable}/tree.c                  |   0\n {reftable => lib/reftable}/tree.h                  |   0\n {reftable => lib/reftable}/writer.c                |   0\n {reftable => lib/reftable}/writer.h                |   0\n remote.c => lib/remote.c                           |   0\n remote.h => lib/remote.h                           |   0\n repack-cruft.c => lib/repack-cruft.c               |   0\n repack-filtered.c => lib/repack-filtered.c         |   0\n repack-geometry.c => lib/repack-geometry.c         |   0\n repack-midx.c => lib/repack-midx.c                 |   0\n repack-promisor.c => lib/repack-promisor.c         |   0\n repack.c => lib/repack.c                           |   0\n repack.h => lib/repack.h                           |   0\n replace-object.c => lib/replace-object.c           |   0\n replace-object.h => lib/replace-object.h           |   0\n replay.c => lib/replay.c                           |   0\n replay.h => lib/replay.h                           |   0\n repo-settings.c => lib/repo-settings.c             |   0\n repo-settings.h => lib/repo-settings.h             |   0\n repository.c => lib/repository.c                   |   0\n repository.h => lib/repository.h                   |   0\n rerere.c => lib/rerere.c                           |   0\n rerere.h => lib/rerere.h                           |   0\n reset.c => lib/reset.c                             |   0\n reset.h => lib/reset.h                             |   0\n resolve-undo.c => lib/resolve-undo.c               |   0\n resolve-undo.h => lib/resolve-undo.h               |   0\n revision.c => lib/revision.c                       |   0\n revision.h => lib/revision.h                       |   0\n run-command.c => lib/run-command.c                 |   0\n run-command.h => lib/run-command.h                 |   0\n sane-ctype.h => lib/sane-ctype.h                   |   0\n send-pack.c => lib/send-pack.c                     |   0\n send-pack.h => lib/send-pack.h                     |   0\n sequencer.c => lib/sequencer.c                     |   0\n sequencer.h => lib/sequencer.h                     |   0\n serve.c => lib/serve.c                             |   0\n serve.h => lib/serve.h                             |   0\n server-info.c => lib/server-info.c                 |   0\n server-info.h => lib/server-info.h                 |   0\n setup.c => lib/setup.c                             |   0\n setup.h => lib/setup.h                             |   0\n {sha1 => lib/sha1}/openssl.h                       |   0\n .../sha1collisiondetection                         |   0\n {sha1dc => lib/sha1dc}/.gitattributes              |   0\n {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n {sha1dc => lib/sha1dc}/sha1.c                      |   0\n {sha1dc => lib/sha1dc}/sha1.h                      |   0\n {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n sha1dc_git.c => lib/sha1dc_git.c                   |   0\n sha1dc_git.h => lib/sha1dc_git.h                   |   0\n {sha256 => lib/sha256}/block/sha256.c              |   0\n {sha256 => lib/sha256}/block/sha256.h              |   0\n {sha256 => lib/sha256}/gcrypt.h                    |   0\n {sha256 => lib/sha256}/nettle.h                    |   0\n {sha256 => lib/sha256}/openssl.h                   |   0\n shallow.c => lib/shallow.c                         |   0\n shallow.h => lib/shallow.h                         |   0\n shortlog.h => lib/shortlog.h                       |   0\n sideband.c => lib/sideband.c                       |   0\n sideband.h => lib/sideband.h                       |   0\n sigchain.c => lib/sigchain.c                       |   0\n sigchain.h => lib/sigchain.h                       |   0\n simple-ipc.h => lib/simple-ipc.h                   |   0\n sparse-index.c => lib/sparse-index.c               |   0\n sparse-index.h => lib/sparse-index.h               |   0\n split-index.c => lib/split-index.c                 |   0\n split-index.h => lib/split-index.h                 |   0\n stable-qsort.c => lib/stable-qsort.c               |   0\n statinfo.c => lib/statinfo.c                       |   0\n statinfo.h => lib/statinfo.h                       |   0\n strbuf.c => lib/strbuf.c                           |   0\n strbuf.h => lib/strbuf.h                           |   0\n string-list.c => lib/string-list.c                 |   0\n string-list.h => lib/string-list.h                 |   0\n strmap.c => lib/strmap.c                           |   0\n strmap.h => lib/strmap.h                           |   0\n strvec.c => lib/strvec.c                           |   0\n strvec.h => lib/strvec.h                           |   0\n sub-process.c => lib/sub-process.c                 |   0\n sub-process.h => lib/sub-process.h                 |   0\n submodule-config.c => lib/submodule-config.c       |   0\n submodule-config.h => lib/submodule-config.h       |   0\n submodule.c => lib/submodule.c                     |   0\n submodule.h => lib/submodule.h                     |   0\n symlinks.c => lib/symlinks.c                       |   0\n symlinks.h => lib/symlinks.h                       |   0\n tag.c => lib/tag.c                                 |   0\n tag.h => lib/tag.h                                 |   0\n tar.h => lib/tar.h                                 |   0\n tempfile.c => lib/tempfile.c                       |   0\n tempfile.h => lib/tempfile.h                       |   0\n thread-utils.c => lib/thread-utils.c               |   0\n thread-utils.h => lib/thread-utils.h               |   0\n tmp-objdir.c => lib/tmp-objdir.c                   |   0\n tmp-objdir.h => lib/tmp-objdir.h                   |   0\n trace.c => lib/trace.c                             |   0\n trace.h => lib/trace.h                             |   0\n trace2.c => lib/trace2.c                           |   0\n trace2.h => lib/trace2.h                           |   0\n {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n {trace2 => lib/trace2}/tr2_dst.c                   |   0\n {trace2 => lib/trace2}/tr2_dst.h                   |   0\n {trace2 => lib/trace2}/tr2_sid.c                   |   0\n {trace2 => lib/trace2}/tr2_sid.h                   |   0\n {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n {trace2 => lib/trace2}/tr2_tls.c                   |   0\n {trace2 => lib/trace2}/tr2_tls.h                   |   0\n {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n trailer.c => lib/trailer.c                         |   0\n trailer.h => lib/trailer.h                         |   0\n transport-helper.c => lib/transport-helper.c       |   0\n transport-internal.h => lib/transport-internal.h   |   0\n transport.c => lib/transport.c                     |   0\n transport.h => lib/transport.h                     |   0\n tree-diff.c => lib/tree-diff.c                     |   0\n tree-walk.c => lib/tree-walk.c                     |   0\n tree-walk.h => lib/tree-walk.h                     |   0\n tree.c => lib/tree.c                               |   0\n tree.h => lib/tree.h                               |   0\n unicode-width.h => lib/unicode-width.h             |   0\n unix-socket.c => lib/unix-socket.c                 |   0\n unix-socket.h => lib/unix-socket.h                 |   0\n unix-stream-server.c => lib/unix-stream-server.c   |   0\n unix-stream-server.h => lib/unix-stream-server.h   |   0\n unpack-trees.c => lib/unpack-trees.c               |   0\n unpack-trees.h => lib/unpack-trees.h               |   0\n upload-pack.c => lib/upload-pack.c                 |   0\n upload-pack.h => lib/upload-pack.h                 |   0\n url.c => lib/url.c                                 |   0\n url.h => lib/url.h                                 |   0\n urlmatch.c => lib/urlmatch.c                       |   0\n urlmatch.h => lib/urlmatch.h                       |   0\n usage.c => lib/usage.c                             |   0\n userdiff.c => lib/userdiff.c                       |   0\n userdiff.h => lib/userdiff.h                       |   0\n utf8.c => lib/utf8.c                               |   0\n utf8.h => lib/utf8.h                               |   0\n varint.c => lib/varint.c                           |   0\n varint.h => lib/varint.h                           |   0\n version-def.h.in => lib/version-def.h.in           |   0\n version.c => lib/version.c                         |   0\n version.h => lib/version.h                         |   0\n versioncmp.c => lib/versioncmp.c                   |   0\n versioncmp.h => lib/versioncmp.h                   |   0\n walker.c => lib/walker.c                           |   0\n walker.h => lib/walker.h                           |   0\n wildmatch.c => lib/wildmatch.c                     |   0\n wildmatch.h => lib/wildmatch.h                     |   0\n worktree.c => lib/worktree.c                       |   0\n worktree.h => lib/worktree.h                       |   0\n wrapper.c => lib/wrapper.c                         |   0\n wrapper.h => lib/wrapper.h                         |   0\n write-or-die.c => lib/write-or-die.c               |   0\n write-or-die.h => lib/write-or-die.h               |   0\n ws.c => lib/ws.c                                   |   0\n ws.h => lib/ws.h                                   |   0\n wt-status.c => lib/wt-status.c                     |   0\n wt-status.h => lib/wt-status.h                     |   0\n xdiff-interface.c => lib/xdiff-interface.c         |   0\n xdiff-interface.h => lib/xdiff-interface.h         |   0\n {xdiff => lib/xdiff}/xdiff.h                       |   0\n {xdiff => lib/xdiff}/xdiffi.c                      |   0\n {xdiff => lib/xdiff}/xdiffi.h                      |   0\n {xdiff => lib/xdiff}/xemit.c                       |   0\n {xdiff => lib/xdiff}/xemit.h                       |   0\n {xdiff => lib/xdiff}/xhistogram.c                  |   0\n {xdiff => lib/xdiff}/xinclude.h                    |   0\n {xdiff => lib/xdiff}/xmacros.h                     |   0\n {xdiff => lib/xdiff}/xmerge.c                      |   0\n {xdiff => lib/xdiff}/xpatience.c                   |   0\n {xdiff => lib/xdiff}/xprepare.c                    |   0\n {xdiff => lib/xdiff}/xprepare.h                    |   0\n {xdiff => lib/xdiff}/xtypes.h                      |   0\n {xdiff => lib/xdiff}/xutils.c                      |   0\n {xdiff => lib/xdiff}/xutils.h                      |   0\n meson.build                                        | 684 +++++++++---------\n t/helper/test-example-tap.c                        |   2 +-\n 695 files changed, 820 insertions(+), 819 deletions(-)\n\n\n---\nbase-commit: 9f223ef1c026d91c7ac68cc0211bde255dda6199\nchange-id: 20260415-pks-libgit-in-subdir-d8eec849cd48\n\n"},{"id":"541736","messageId":"20260416-pks-libgit-in-subdir-v1-1-03afc731df55@pks.im","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","subject":"[PATCH RFC 1/2] t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-16T13:24:30Z","receivedAt":"2026-04-16T13:24:48Z","isPatch":true,"body":"In the next commit we're about to introduce a new \"lib/\" directory and\nmove all of our files into it. With this split the compiler won't be\nable to find one of the includes in \"test-example-tap.c\" anymore. Adjust\nit to a relative include to prepare for this change.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n t/helper/test-example-tap.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/helper/test-example-tap.c b/t/helper/test-example-tap.c\nindex 998a1f0b42..50d46669d1 100644\n--- a/t/helper/test-example-tap.c\n+++ b/t/helper/test-example-tap.c\n@@ -1,5 +1,5 @@\n #include \"test-tool.h\"\n-#include \"t/unit-tests/test-lib.h\"\n+#include \"../unit-tests/test-lib.h\"\n \n /*\n  * The purpose of this \"unit test\" is to verify a few invariants of the unit\n\n-- \n2.54.0.rc2.529.gd9106f7525.dirty\n\n"},{"id":"541738","messageId":"20260416-pks-libgit-in-subdir-v1-2-03afc731df55@pks.im","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","subject":"[PATCH RFC 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-16T13:24:31Z","receivedAt":"2026-04-16T13:24:53Z","isPatch":true,"body":"The Git project is not exactly the easiest project to get started in:\nit's written in C and POSIX shell, with bits of Perl, Rust and other\nlanguages sprinkled into it. On top of that, the project has grown\nsomewhat organically over time, making the codebase hard to navigate.\n\nThese are problems that we're aware of, and there have been and still\nare efforts to clean up some of the technical debt that is natural to\nexist an a project that is more than 20 years old. Furthermore, we\nprovide resources to newcomers that help them out like our coding\nguidelines, code of conduct or \"MyFirstContribution.adoc\".\n\nBut there is a rather practical problem: finding your way around in our\nproject's tree is not easy. Doing a directory listing in the top-level\ndirectory will present you with more than 550 files, which makes it\nextremely hard for a newcomer to figure out what files they are even\nsupposed to look at. This makes the onboarding experience somewhat\nharder than it really needs to be. This isn't only a problem for\nnewcomers though, as I myself struggle to find the files I am looking\nfor because of the sheer number of files.\n\nBesides the problem of discoverability it also creates a problem of\nstructure. It is not obvious at all which files are part of \"libgit.a\"\nand which files are only linked into our final executables. So while we\nhave this split in our build systems, that split is not evident at all\nin our tree.\n\nIntroduce a new \"lib/\" directory and move all of our sources for\n\"libgit.a\" into it to fix these issues. It makes the split we have\nevident and reduces the number of files in our top-level tree from 550\nfiles to ~80 files.\n\nThis is still a lot of files, but it's significantly easier to navigate\nalready. Furthermore, we can further iterate after this step and think\nabout introducing a better structure for remaining files, as well.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml                         |   8 +-\n .gitmodules                                        |   2 +-\n Documentation/Makefile                             |   4 +-\n Makefile                                           | 762 ++++++++++-----------\n config.mak.uname                                   |  52 +-\n contrib/buildsystems/CMakeLists.txt                | 107 +--\n git.rc.in                                          |   2 +-\n abspath.c => lib/abspath.c                         |   0\n abspath.h => lib/abspath.h                         |   0\n add-interactive.c => lib/add-interactive.c         |   0\n add-interactive.h => lib/add-interactive.h         |   0\n add-patch.c => lib/add-patch.c                     |   0\n add-patch.h => lib/add-patch.h                     |   0\n advice.c => lib/advice.c                           |   0\n advice.h => lib/advice.h                           |   0\n alias.c => lib/alias.c                             |   0\n alias.h => lib/alias.h                             |   0\n alloc.c => lib/alloc.c                             |   0\n alloc.h => lib/alloc.h                             |   0\n apply.c => lib/apply.c                             |   0\n apply.h => lib/apply.h                             |   0\n archive-tar.c => lib/archive-tar.c                 |   0\n archive-zip.c => lib/archive-zip.c                 |   0\n archive.c => lib/archive.c                         |   0\n archive.h => lib/archive.h                         |   0\n attr.c => lib/attr.c                               |   0\n attr.h => lib/attr.h                               |   0\n banned.h => lib/banned.h                           |   0\n base85.c => lib/base85.c                           |   0\n base85.h => lib/base85.h                           |   0\n bisect.c => lib/bisect.c                           |   0\n bisect.h => lib/bisect.h                           |   0\n blame.c => lib/blame.c                             |   0\n blame.h => lib/blame.h                             |   0\n blob.c => lib/blob.c                               |   0\n blob.h => lib/blob.h                               |   0\n {block-sha1 => lib/block-sha1}/sha1.c              |   0\n {block-sha1 => lib/block-sha1}/sha1.h              |   0\n bloom.c => lib/bloom.c                             |   0\n bloom.h => lib/bloom.h                             |   0\n branch.c => lib/branch.c                           |   0\n branch.h => lib/branch.h                           |   0\n builtin.h => lib/builtin.h                         |   0\n bundle-uri.c => lib/bundle-uri.c                   |   0\n bundle-uri.h => lib/bundle-uri.h                   |   0\n bundle.c => lib/bundle.c                           |   0\n bundle.h => lib/bundle.h                           |   0\n cache-tree.c => lib/cache-tree.c                   |   0\n cache-tree.h => lib/cache-tree.h                   |   0\n cbtree.c => lib/cbtree.c                           |   0\n cbtree.h => lib/cbtree.h                           |   0\n chdir-notify.c => lib/chdir-notify.c               |   0\n chdir-notify.h => lib/chdir-notify.h               |   0\n checkout.c => lib/checkout.c                       |   0\n checkout.h => lib/checkout.h                       |   0\n chunk-format.c => lib/chunk-format.c               |   0\n chunk-format.h => lib/chunk-format.h               |   0\n color.c => lib/color.c                             |   0\n color.h => lib/color.h                             |   0\n column.c => lib/column.c                           |   0\n column.h => lib/column.h                           |   0\n combine-diff.c => lib/combine-diff.c               |   0\n commit-graph.c => lib/commit-graph.c               |   0\n commit-graph.h => lib/commit-graph.h               |   0\n commit-reach.c => lib/commit-reach.c               |   0\n commit-reach.h => lib/commit-reach.h               |   0\n commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n commit-slab.h => lib/commit-slab.h                 |   0\n commit.c => lib/commit.c                           |   0\n commit.h => lib/commit.h                           |   0\n common-exit.c => lib/common-exit.c                 |   0\n common-init.c => lib/common-init.c                 |   0\n common-init.h => lib/common-init.h                 |   0\n {compat => lib/compat}/.gitattributes              |   0\n {compat => lib/compat}/access.c                    |   0\n {compat => lib/compat}/apple-common-crypto.h       |   0\n {compat => lib/compat}/basename.c                  |   0\n {compat => lib/compat}/bswap.h                     |   0\n {compat => lib/compat}/compiler.h                  |   0\n {compat => lib/compat}/darwin/procinfo.c           |   0\n {compat => lib/compat}/disk.h                      |   0\n {compat => lib/compat}/fileno.c                    |   0\n {compat => lib/compat}/fopen.c                     |   0\n {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n .../compat}/fsmonitor/fsm-health-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-darwin.c  |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n .../compat}/fsmonitor/fsm-settings-darwin.c        |   0\n .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n {compat => lib/compat}/hstrerror.c                 |   0\n {compat => lib/compat}/inet_ntop.c                 |   0\n {compat => lib/compat}/inet_pton.c                 |   0\n {compat => lib/compat}/linux/procinfo.c            |   0\n {compat => lib/compat}/memmem.c                    |   0\n {compat => lib/compat}/mingw-posix.h               |   0\n {compat => lib/compat}/mingw.c                     |   0\n {compat => lib/compat}/mingw.h                     |   0\n {compat => lib/compat}/mkdir.c                     |   0\n {compat => lib/compat}/mmap.c                      |   0\n {compat => lib/compat}/msvc-posix.h                |   0\n {compat => lib/compat}/msvc.c                      |   0\n {compat => lib/compat}/msvc.h                      |   0\n {compat => lib/compat}/nedmalloc/License.txt       |   0\n {compat => lib/compat}/nedmalloc/Readme.txt        |   0\n {compat => lib/compat}/nedmalloc/malloc.c.h        |   0\n {compat => lib/compat}/nedmalloc/nedmalloc.c       |   0\n {compat => lib/compat}/nedmalloc/nedmalloc.h       |   0\n {compat => lib/compat}/nonblock.c                  |   0\n {compat => lib/compat}/nonblock.h                  |   0\n {compat => lib/compat}/obstack.c                   |   0\n {compat => lib/compat}/obstack.h                   |   0\n {compat => lib/compat}/open.c                      |   0\n {compat => lib/compat}/poll/poll.c                 |   0\n {compat => lib/compat}/poll/poll.h                 |   0\n {compat => lib/compat}/posix.h                     |   0\n {compat => lib/compat}/pread.c                     |   0\n {compat => lib/compat}/precompose_utf8.c           |   0\n {compat => lib/compat}/precompose_utf8.h           |   0\n {compat => lib/compat}/qsort_s.c                   |   0\n {compat => lib/compat}/regcomp_enhanced.c          |   0\n {compat => lib/compat}/regex/regcomp.c             |   0\n {compat => lib/compat}/regex/regex.c               |   0\n {compat => lib/compat}/regex/regex.h               |   0\n {compat => lib/compat}/regex/regex_internal.c      |   0\n {compat => lib/compat}/regex/regex_internal.h      |   0\n {compat => lib/compat}/regex/regexec.c             |   0\n {compat => lib/compat}/setenv.c                    |   0\n {compat => lib/compat}/sha1-chunked.c              |   0\n {compat => lib/compat}/sha1-chunked.h              |   0\n {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n {compat => lib/compat}/snprintf.c                  |   0\n {compat => lib/compat}/stat.c                      |   0\n {compat => lib/compat}/strcasestr.c                |   0\n {compat => lib/compat}/strdup.c                    |   0\n {compat => lib/compat}/strlcpy.c                   |   0\n {compat => lib/compat}/strtoimax.c                 |   0\n {compat => lib/compat}/strtoumax.c                 |   0\n {compat => lib/compat}/stub/procinfo.c             |   0\n {compat => lib/compat}/terminal.c                  |   0\n {compat => lib/compat}/terminal.h                  |   0\n {compat => lib/compat}/unsetenv.c                  |   0\n {compat => lib/compat}/vcbuild/.gitignore          |   0\n {compat => lib/compat}/vcbuild/README              |  10 +-\n {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n {compat => lib/compat}/vcbuild/include/utime.h     |   0\n {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n {compat => lib/compat}/win32.h                     |   0\n {compat => lib/compat}/win32/alloca.h              |   0\n {compat => lib/compat}/win32/dirent.c              |   0\n {compat => lib/compat}/win32/dirent.h              |   0\n {compat => lib/compat}/win32/flush.c               |   0\n {compat => lib/compat}/win32/git.manifest          |   0\n {compat => lib/compat}/win32/headless.c            |   0\n {compat => lib/compat}/win32/lazyload.h            |   0\n {compat => lib/compat}/win32/path-utils.c          |   0\n {compat => lib/compat}/win32/path-utils.h          |   0\n {compat => lib/compat}/win32/pthread.c             |   0\n {compat => lib/compat}/win32/pthread.h             |   0\n {compat => lib/compat}/win32/syslog.c              |   0\n {compat => lib/compat}/win32/syslog.h              |   0\n .../compat}/win32/trace2_win32_process_info.c      |   0\n {compat => lib/compat}/win32mmap.c                 |   0\n {compat => lib/compat}/winansi.c                   |   0\n {compat => lib/compat}/zlib-compat.h               |   0\n .../compiler-tricks}/not-constant.c                |   0\n config.c => lib/config.c                           |   0\n config.h => lib/config.h                           |   0\n connect.c => lib/connect.c                         |   0\n connect.h => lib/connect.h                         |   0\n connected.c => lib/connected.c                     |   0\n connected.h => lib/connected.h                     |   0\n convert.c => lib/convert.c                         |   0\n convert.h => lib/convert.h                         |   0\n copy.c => lib/copy.c                               |   0\n copy.h => lib/copy.h                               |   0\n credential.c => lib/credential.c                   |   0\n credential.h => lib/credential.h                   |   0\n csum-file.c => lib/csum-file.c                     |   0\n csum-file.h => lib/csum-file.h                     |   0\n ctype.c => lib/ctype.c                             |   0\n date.c => lib/date.c                               |   0\n date.h => lib/date.h                               |   0\n decorate.c => lib/decorate.c                       |   0\n decorate.h => lib/decorate.h                       |   0\n delta-islands.c => lib/delta-islands.c             |   0\n delta-islands.h => lib/delta-islands.h             |   0\n delta.h => lib/delta.h                             |   0\n diagnose.c => lib/diagnose.c                       |   0\n diagnose.h => lib/diagnose.h                       |   0\n diff-delta.c => lib/diff-delta.c                   |   0\n diff-lib.c => lib/diff-lib.c                       |   0\n diff-merges.c => lib/diff-merges.c                 |   0\n diff-merges.h => lib/diff-merges.h                 |   0\n diff-no-index.c => lib/diff-no-index.c             |   0\n diff.c => lib/diff.c                               |   0\n diff.h => lib/diff.h                               |   0\n diffcore-break.c => lib/diffcore-break.c           |   0\n diffcore-delta.c => lib/diffcore-delta.c           |   0\n diffcore-order.c => lib/diffcore-order.c           |   0\n diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n diffcore-rename.c => lib/diffcore-rename.c         |   0\n diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n diffcore.h => lib/diffcore.h                       |   0\n dir-iterator.c => lib/dir-iterator.c               |   0\n dir-iterator.h => lib/dir-iterator.h               |   0\n dir.c => lib/dir.c                                 |   0\n dir.h => lib/dir.h                                 |   0\n editor.c => lib/editor.c                           |   0\n editor.h => lib/editor.h                           |   0\n entry.c => lib/entry.c                             |   0\n entry.h => lib/entry.h                             |   0\n environment.c => lib/environment.c                 |   0\n environment.h => lib/environment.h                 |   0\n {ewah => lib/ewah}/bitmap.c                        |   0\n {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n {ewah => lib/ewah}/ewah_io.c                       |   0\n {ewah => lib/ewah}/ewah_rlw.c                      |   0\n {ewah => lib/ewah}/ewok.h                          |   0\n {ewah => lib/ewah}/ewok_rlw.h                      |   0\n exec-cmd.c => lib/exec-cmd.c                       |   0\n exec-cmd.h => lib/exec-cmd.h                       |   0\n fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n fetch-pack.c => lib/fetch-pack.c                   |   0\n fetch-pack.h => lib/fetch-pack.h                   |   0\n fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n for-each-ref.h => lib/for-each-ref.h               |   0\n fsck.c => lib/fsck.c                               |   0\n fsck.h => lib/fsck.h                               |   0\n fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n .../fsmonitor-path-utils.h                         |   0\n fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n fsmonitor.c => lib/fsmonitor.c                     |   0\n fsmonitor.h => lib/fsmonitor.h                     |   0\n gettext.c => lib/gettext.c                         |   0\n gettext.h => lib/gettext.h                         |   0\n git-compat-util.h => lib/git-compat-util.h         |   0\n git-curl-compat.h => lib/git-curl-compat.h         |   0\n git-zlib.c => lib/git-zlib.c                       |   0\n git-zlib.h => lib/git-zlib.h                       |   0\n gpg-interface.c => lib/gpg-interface.c             |   0\n gpg-interface.h => lib/gpg-interface.h             |   0\n graph.c => lib/graph.c                             |   0\n graph.h => lib/graph.h                             |   0\n grep.c => lib/grep.c                               |   0\n grep.h => lib/grep.h                               |   0\n hash-lookup.c => lib/hash-lookup.c                 |   0\n hash-lookup.h => lib/hash-lookup.h                 |   0\n hash.c => lib/hash.c                               |   0\n hash.h => lib/hash.h                               |   0\n hashmap.c => lib/hashmap.c                         |   0\n hashmap.h => lib/hashmap.h                         |   0\n help.c => lib/help.c                               |   0\n help.h => lib/help.h                               |   0\n hex-ll.c => lib/hex-ll.c                           |   0\n hex-ll.h => lib/hex-ll.h                           |   0\n hex.c => lib/hex.c                                 |   0\n hex.h => lib/hex.h                                 |   0\n hook.c => lib/hook.c                               |   0\n hook.h => lib/hook.h                               |   0\n http-walker.c => lib/http-walker.c                 |   0\n http.c => lib/http.c                               |   0\n http.h => lib/http.h                               |   0\n ident.c => lib/ident.c                             |   0\n ident.h => lib/ident.h                             |   0\n iterator.h => lib/iterator.h                       |   0\n json-writer.c => lib/json-writer.c                 |   0\n json-writer.h => lib/json-writer.h                 |   0\n khash.h => lib/khash.h                             |   0\n kwset.c => lib/kwset.c                             |   0\n kwset.h => lib/kwset.h                             |   0\n levenshtein.c => lib/levenshtein.c                 |   0\n levenshtein.h => lib/levenshtein.h                 |   0\n line-log.c => lib/line-log.c                       |   0\n line-log.h => lib/line-log.h                       |   0\n line-range.c => lib/line-range.c                   |   0\n line-range.h => lib/line-range.h                   |   0\n linear-assignment.c => lib/linear-assignment.c     |   0\n linear-assignment.h => lib/linear-assignment.h     |   0\n .../list-objects-filter-options.c                  |   0\n .../list-objects-filter-options.h                  |   0\n list-objects-filter.c => lib/list-objects-filter.c |   0\n list-objects-filter.h => lib/list-objects-filter.h |   0\n list-objects.c => lib/list-objects.c               |   0\n list-objects.h => lib/list-objects.h               |   0\n list.h => lib/list.h                               |   0\n lockfile.c => lib/lockfile.c                       |   0\n lockfile.h => lib/lockfile.h                       |   0\n log-tree.c => lib/log-tree.c                       |   0\n log-tree.h => lib/log-tree.h                       |   0\n loose.c => lib/loose.c                             |   0\n loose.h => lib/loose.h                             |   0\n ls-refs.c => lib/ls-refs.c                         |   0\n ls-refs.h => lib/ls-refs.h                         |   0\n mailinfo.c => lib/mailinfo.c                       |   0\n mailinfo.h => lib/mailinfo.h                       |   0\n mailmap.c => lib/mailmap.c                         |   0\n mailmap.h => lib/mailmap.h                         |   0\n match-trees.c => lib/match-trees.c                 |   0\n match-trees.h => lib/match-trees.h                 |   0\n mem-pool.c => lib/mem-pool.c                       |   0\n mem-pool.h => lib/mem-pool.h                       |   0\n merge-blobs.c => lib/merge-blobs.c                 |   0\n merge-blobs.h => lib/merge-blobs.h                 |   0\n merge-ll.c => lib/merge-ll.c                       |   0\n merge-ll.h => lib/merge-ll.h                       |   0\n merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n merge-ort.c => lib/merge-ort.c                     |   0\n merge-ort.h => lib/merge-ort.h                     |   0\n merge.c => lib/merge.c                             |   0\n merge.h => lib/merge.h                             |   0\n mergesort.h => lib/mergesort.h                     |   0\n midx-write.c => lib/midx-write.c                   |   0\n midx.c => lib/midx.c                               |   0\n midx.h => lib/midx.h                               |   0\n name-hash.c => lib/name-hash.c                     |   0\n name-hash.h => lib/name-hash.h                     |   0\n {negotiator => lib/negotiator}/default.c           |   0\n {negotiator => lib/negotiator}/default.h           |   0\n {negotiator => lib/negotiator}/noop.c              |   0\n {negotiator => lib/negotiator}/noop.h              |   0\n {negotiator => lib/negotiator}/skipping.c          |   0\n {negotiator => lib/negotiator}/skipping.h          |   0\n notes-cache.c => lib/notes-cache.c                 |   0\n notes-cache.h => lib/notes-cache.h                 |   0\n notes-merge.c => lib/notes-merge.c                 |   0\n notes-merge.h => lib/notes-merge.h                 |   0\n notes-utils.c => lib/notes-utils.c                 |   0\n notes-utils.h => lib/notes-utils.h                 |   0\n notes.c => lib/notes.c                             |   0\n notes.h => lib/notes.h                             |   0\n object-file-convert.c => lib/object-file-convert.c |   0\n object-file-convert.h => lib/object-file-convert.h |   0\n object-file.c => lib/object-file.c                 |   0\n object-file.h => lib/object-file.h                 |   0\n object-name.c => lib/object-name.c                 |   0\n object-name.h => lib/object-name.h                 |   0\n object.c => lib/object.c                           |   0\n object.h => lib/object.h                           |   0\n odb.c => lib/odb.c                                 |   0\n odb.h => lib/odb.h                                 |   0\n {odb => lib/odb}/source-files.c                    |   0\n {odb => lib/odb}/source-files.h                    |   0\n {odb => lib/odb}/source.c                          |   0\n {odb => lib/odb}/source.h                          |   0\n {odb => lib/odb}/streaming.c                       |   0\n {odb => lib/odb}/streaming.h                       |   0\n oid-array.c => lib/oid-array.c                     |   0\n oid-array.h => lib/oid-array.h                     |   0\n oidmap.c => lib/oidmap.c                           |   0\n oidmap.h => lib/oidmap.h                           |   0\n oidset.c => lib/oidset.c                           |   0\n oidset.h => lib/oidset.h                           |   0\n oidtree.c => lib/oidtree.c                         |   0\n oidtree.h => lib/oidtree.h                         |   0\n pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n pack-bitmap.c => lib/pack-bitmap.c                 |   0\n pack-bitmap.h => lib/pack-bitmap.h                 |   0\n pack-check.c => lib/pack-check.c                   |   0\n pack-mtimes.c => lib/pack-mtimes.c                 |   0\n pack-mtimes.h => lib/pack-mtimes.h                 |   0\n pack-objects.c => lib/pack-objects.c               |   0\n pack-objects.h => lib/pack-objects.h               |   0\n pack-refs.c => lib/pack-refs.c                     |   0\n pack-refs.h => lib/pack-refs.h                     |   0\n pack-revindex.c => lib/pack-revindex.c             |   0\n pack-revindex.h => lib/pack-revindex.h             |   0\n pack-write.c => lib/pack-write.c                   |   0\n pack.h => lib/pack.h                               |   0\n packfile.c => lib/packfile.c                       |   0\n packfile.h => lib/packfile.h                       |   0\n pager.c => lib/pager.c                             |   0\n pager.h => lib/pager.h                             |   0\n parallel-checkout.c => lib/parallel-checkout.c     |   0\n parallel-checkout.h => lib/parallel-checkout.h     |   0\n parse-options-cb.c => lib/parse-options-cb.c       |   0\n parse-options.c => lib/parse-options.c             |   0\n parse-options.h => lib/parse-options.h             |   0\n parse.c => lib/parse.c                             |   0\n parse.h => lib/parse.h                             |   0\n patch-delta.c => lib/patch-delta.c                 |   0\n patch-ids.c => lib/patch-ids.c                     |   0\n patch-ids.h => lib/patch-ids.h                     |   0\n path-walk.c => lib/path-walk.c                     |   0\n path-walk.h => lib/path-walk.h                     |   0\n path.c => lib/path.c                               |   0\n path.h => lib/path.h                               |   0\n pathspec.c => lib/pathspec.c                       |   0\n pathspec.h => lib/pathspec.h                       |   0\n pkt-line.c => lib/pkt-line.c                       |   0\n pkt-line.h => lib/pkt-line.h                       |   0\n preload-index.c => lib/preload-index.c             |   0\n preload-index.h => lib/preload-index.h             |   0\n pretty.c => lib/pretty.c                           |   0\n pretty.h => lib/pretty.h                           |   0\n prio-queue.c => lib/prio-queue.c                   |   0\n prio-queue.h => lib/prio-queue.h                   |   0\n progress.c => lib/progress.c                       |   0\n progress.h => lib/progress.h                       |   0\n promisor-remote.c => lib/promisor-remote.c         |   0\n promisor-remote.h => lib/promisor-remote.h         |   0\n prompt.c => lib/prompt.c                           |   0\n prompt.h => lib/prompt.h                           |   0\n protocol-caps.c => lib/protocol-caps.c             |   0\n protocol-caps.h => lib/protocol-caps.h             |   0\n protocol.c => lib/protocol.c                       |   0\n protocol.h => lib/protocol.h                       |   0\n prune-packed.c => lib/prune-packed.c               |   0\n prune-packed.h => lib/prune-packed.h               |   0\n pseudo-merge.c => lib/pseudo-merge.c               |   0\n pseudo-merge.h => lib/pseudo-merge.h               |   0\n quote.c => lib/quote.c                             |   0\n quote.h => lib/quote.h                             |   0\n range-diff.c => lib/range-diff.c                   |   0\n range-diff.h => lib/range-diff.h                   |   0\n reachable.c => lib/reachable.c                     |   0\n reachable.h => lib/reachable.h                     |   0\n read-cache-ll.h => lib/read-cache-ll.h             |   0\n read-cache.c => lib/read-cache.c                   |   0\n read-cache.h => lib/read-cache.h                   |   0\n rebase-interactive.c => lib/rebase-interactive.c   |   0\n rebase-interactive.h => lib/rebase-interactive.h   |   0\n rebase.c => lib/rebase.c                           |   0\n rebase.h => lib/rebase.h                           |   0\n ref-filter.c => lib/ref-filter.c                   |   0\n ref-filter.h => lib/ref-filter.h                   |   0\n reflog-walk.c => lib/reflog-walk.c                 |   0\n reflog-walk.h => lib/reflog-walk.h                 |   0\n reflog.c => lib/reflog.c                           |   0\n reflog.h => lib/reflog.h                           |   0\n refs.c => lib/refs.c                               |   0\n refs.h => lib/refs.h                               |   0\n {refs => lib/refs}/debug.c                         |   0\n {refs => lib/refs}/files-backend.c                 |   0\n {refs => lib/refs}/iterator.c                      |   0\n {refs => lib/refs}/packed-backend.c                |   0\n {refs => lib/refs}/packed-backend.h                |   0\n {refs => lib/refs}/ref-cache.c                     |   0\n {refs => lib/refs}/ref-cache.h                     |   0\n {refs => lib/refs}/refs-internal.h                 |   0\n {refs => lib/refs}/reftable-backend.c              |   0\n refspec.c => lib/refspec.c                         |   0\n refspec.h => lib/refspec.h                         |   0\n {reftable => lib/reftable}/LICENSE                 |   0\n {reftable => lib/reftable}/basics.c                |   0\n {reftable => lib/reftable}/basics.h                |   0\n {reftable => lib/reftable}/block.c                 |   0\n {reftable => lib/reftable}/block.h                 |   0\n {reftable => lib/reftable}/blocksource.c           |   0\n {reftable => lib/reftable}/blocksource.h           |   0\n {reftable => lib/reftable}/constants.h             |   0\n {reftable => lib/reftable}/error.c                 |   0\n {reftable => lib/reftable}/fsck.c                  |   0\n {reftable => lib/reftable}/iter.c                  |   0\n {reftable => lib/reftable}/iter.h                  |   0\n {reftable => lib/reftable}/merged.c                |   0\n {reftable => lib/reftable}/merged.h                |   0\n {reftable => lib/reftable}/pq.c                    |   0\n {reftable => lib/reftable}/pq.h                    |   0\n {reftable => lib/reftable}/record.c                |   0\n {reftable => lib/reftable}/record.h                |   0\n {reftable => lib/reftable}/reftable-basics.h       |   0\n {reftable => lib/reftable}/reftable-block.h        |   0\n {reftable => lib/reftable}/reftable-blocksource.h  |   0\n {reftable => lib/reftable}/reftable-constants.h    |   0\n {reftable => lib/reftable}/reftable-error.h        |   0\n {reftable => lib/reftable}/reftable-fsck.h         |   0\n {reftable => lib/reftable}/reftable-iterator.h     |   0\n {reftable => lib/reftable}/reftable-merged.h       |   0\n {reftable => lib/reftable}/reftable-record.h       |   0\n {reftable => lib/reftable}/reftable-stack.h        |   0\n {reftable => lib/reftable}/reftable-system.h       |   0\n {reftable => lib/reftable}/reftable-table.h        |   0\n {reftable => lib/reftable}/reftable-writer.h       |   0\n {reftable => lib/reftable}/stack.c                 |   0\n {reftable => lib/reftable}/stack.h                 |   0\n {reftable => lib/reftable}/system.c                |   0\n {reftable => lib/reftable}/system.h                |   0\n {reftable => lib/reftable}/table.c                 |   0\n {reftable => lib/reftable}/table.h                 |   0\n {reftable => lib/reftable}/tree.c                  |   0\n {reftable => lib/reftable}/tree.h                  |   0\n {reftable => lib/reftable}/writer.c                |   0\n {reftable => lib/reftable}/writer.h                |   0\n remote.c => lib/remote.c                           |   0\n remote.h => lib/remote.h                           |   0\n repack-cruft.c => lib/repack-cruft.c               |   0\n repack-filtered.c => lib/repack-filtered.c         |   0\n repack-geometry.c => lib/repack-geometry.c         |   0\n repack-midx.c => lib/repack-midx.c                 |   0\n repack-promisor.c => lib/repack-promisor.c         |   0\n repack.c => lib/repack.c                           |   0\n repack.h => lib/repack.h                           |   0\n replace-object.c => lib/replace-object.c           |   0\n replace-object.h => lib/replace-object.h           |   0\n replay.c => lib/replay.c                           |   0\n replay.h => lib/replay.h                           |   0\n repo-settings.c => lib/repo-settings.c             |   0\n repo-settings.h => lib/repo-settings.h             |   0\n repository.c => lib/repository.c                   |   0\n repository.h => lib/repository.h                   |   0\n rerere.c => lib/rerere.c                           |   0\n rerere.h => lib/rerere.h                           |   0\n reset.c => lib/reset.c                             |   0\n reset.h => lib/reset.h                             |   0\n resolve-undo.c => lib/resolve-undo.c               |   0\n resolve-undo.h => lib/resolve-undo.h               |   0\n revision.c => lib/revision.c                       |   0\n revision.h => lib/revision.h                       |   0\n run-command.c => lib/run-command.c                 |   0\n run-command.h => lib/run-command.h                 |   0\n sane-ctype.h => lib/sane-ctype.h                   |   0\n send-pack.c => lib/send-pack.c                     |   0\n send-pack.h => lib/send-pack.h                     |   0\n sequencer.c => lib/sequencer.c                     |   0\n sequencer.h => lib/sequencer.h                     |   0\n serve.c => lib/serve.c                             |   0\n serve.h => lib/serve.h                             |   0\n server-info.c => lib/server-info.c                 |   0\n server-info.h => lib/server-info.h                 |   0\n setup.c => lib/setup.c                             |   0\n setup.h => lib/setup.h                             |   0\n {sha1 => lib/sha1}/openssl.h                       |   0\n .../sha1collisiondetection                         |   0\n {sha1dc => lib/sha1dc}/.gitattributes              |   0\n {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n {sha1dc => lib/sha1dc}/sha1.c                      |   0\n {sha1dc => lib/sha1dc}/sha1.h                      |   0\n {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n sha1dc_git.c => lib/sha1dc_git.c                   |   0\n sha1dc_git.h => lib/sha1dc_git.h                   |   0\n {sha256 => lib/sha256}/block/sha256.c              |   0\n {sha256 => lib/sha256}/block/sha256.h              |   0\n {sha256 => lib/sha256}/gcrypt.h                    |   0\n {sha256 => lib/sha256}/nettle.h                    |   0\n {sha256 => lib/sha256}/openssl.h                   |   0\n shallow.c => lib/shallow.c                         |   0\n shallow.h => lib/shallow.h                         |   0\n shortlog.h => lib/shortlog.h                       |   0\n sideband.c => lib/sideband.c                       |   0\n sideband.h => lib/sideband.h                       |   0\n sigchain.c => lib/sigchain.c                       |   0\n sigchain.h => lib/sigchain.h                       |   0\n simple-ipc.h => lib/simple-ipc.h                   |   0\n sparse-index.c => lib/sparse-index.c               |   0\n sparse-index.h => lib/sparse-index.h               |   0\n split-index.c => lib/split-index.c                 |   0\n split-index.h => lib/split-index.h                 |   0\n stable-qsort.c => lib/stable-qsort.c               |   0\n statinfo.c => lib/statinfo.c                       |   0\n statinfo.h => lib/statinfo.h                       |   0\n strbuf.c => lib/strbuf.c                           |   0\n strbuf.h => lib/strbuf.h                           |   0\n string-list.c => lib/string-list.c                 |   0\n string-list.h => lib/string-list.h                 |   0\n strmap.c => lib/strmap.c                           |   0\n strmap.h => lib/strmap.h                           |   0\n strvec.c => lib/strvec.c                           |   0\n strvec.h => lib/strvec.h                           |   0\n sub-process.c => lib/sub-process.c                 |   0\n sub-process.h => lib/sub-process.h                 |   0\n submodule-config.c => lib/submodule-config.c       |   0\n submodule-config.h => lib/submodule-config.h       |   0\n submodule.c => lib/submodule.c                     |   0\n submodule.h => lib/submodule.h                     |   0\n symlinks.c => lib/symlinks.c                       |   0\n symlinks.h => lib/symlinks.h                       |   0\n tag.c => lib/tag.c                                 |   0\n tag.h => lib/tag.h                                 |   0\n tar.h => lib/tar.h                                 |   0\n tempfile.c => lib/tempfile.c                       |   0\n tempfile.h => lib/tempfile.h                       |   0\n thread-utils.c => lib/thread-utils.c               |   0\n thread-utils.h => lib/thread-utils.h               |   0\n tmp-objdir.c => lib/tmp-objdir.c                   |   0\n tmp-objdir.h => lib/tmp-objdir.h                   |   0\n trace.c => lib/trace.c                             |   0\n trace.h => lib/trace.h                             |   0\n trace2.c => lib/trace2.c                           |   0\n trace2.h => lib/trace2.h                           |   0\n {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n {trace2 => lib/trace2}/tr2_dst.c                   |   0\n {trace2 => lib/trace2}/tr2_dst.h                   |   0\n {trace2 => lib/trace2}/tr2_sid.c                   |   0\n {trace2 => lib/trace2}/tr2_sid.h                   |   0\n {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n {trace2 => lib/trace2}/tr2_tls.c                   |   0\n {trace2 => lib/trace2}/tr2_tls.h                   |   0\n {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n trailer.c => lib/trailer.c                         |   0\n trailer.h => lib/trailer.h                         |   0\n transport-helper.c => lib/transport-helper.c       |   0\n transport-internal.h => lib/transport-internal.h   |   0\n transport.c => lib/transport.c                     |   0\n transport.h => lib/transport.h                     |   0\n tree-diff.c => lib/tree-diff.c                     |   0\n tree-walk.c => lib/tree-walk.c                     |   0\n tree-walk.h => lib/tree-walk.h                     |   0\n tree.c => lib/tree.c                               |   0\n tree.h => lib/tree.h                               |   0\n unicode-width.h => lib/unicode-width.h             |   0\n unix-socket.c => lib/unix-socket.c                 |   0\n unix-socket.h => lib/unix-socket.h                 |   0\n unix-stream-server.c => lib/unix-stream-server.c   |   0\n unix-stream-server.h => lib/unix-stream-server.h   |   0\n unpack-trees.c => lib/unpack-trees.c               |   0\n unpack-trees.h => lib/unpack-trees.h               |   0\n upload-pack.c => lib/upload-pack.c                 |   0\n upload-pack.h => lib/upload-pack.h                 |   0\n url.c => lib/url.c                                 |   0\n url.h => lib/url.h                                 |   0\n urlmatch.c => lib/urlmatch.c                       |   0\n urlmatch.h => lib/urlmatch.h                       |   0\n usage.c => lib/usage.c                             |   0\n userdiff.c => lib/userdiff.c                       |   0\n userdiff.h => lib/userdiff.h                       |   0\n utf8.c => lib/utf8.c                               |   0\n utf8.h => lib/utf8.h                               |   0\n varint.c => lib/varint.c                           |   0\n varint.h => lib/varint.h                           |   0\n version-def.h.in => lib/version-def.h.in           |   0\n version.c => lib/version.c                         |   0\n version.h => lib/version.h                         |   0\n versioncmp.c => lib/versioncmp.c                   |   0\n versioncmp.h => lib/versioncmp.h                   |   0\n walker.c => lib/walker.c                           |   0\n walker.h => lib/walker.h                           |   0\n wildmatch.c => lib/wildmatch.c                     |   0\n wildmatch.h => lib/wildmatch.h                     |   0\n worktree.c => lib/worktree.c                       |   0\n worktree.h => lib/worktree.h                       |   0\n wrapper.c => lib/wrapper.c                         |   0\n wrapper.h => lib/wrapper.h                         |   0\n write-or-die.c => lib/write-or-die.c               |   0\n write-or-die.h => lib/write-or-die.h               |   0\n ws.c => lib/ws.c                                   |   0\n ws.h => lib/ws.h                                   |   0\n wt-status.c => lib/wt-status.c                     |   0\n wt-status.h => lib/wt-status.h                     |   0\n xdiff-interface.c => lib/xdiff-interface.c         |   0\n xdiff-interface.h => lib/xdiff-interface.h         |   0\n {xdiff => lib/xdiff}/xdiff.h                       |   0\n {xdiff => lib/xdiff}/xdiffi.c                      |   0\n {xdiff => lib/xdiff}/xdiffi.h                      |   0\n {xdiff => lib/xdiff}/xemit.c                       |   0\n {xdiff => lib/xdiff}/xemit.h                       |   0\n {xdiff => lib/xdiff}/xhistogram.c                  |   0\n {xdiff => lib/xdiff}/xinclude.h                    |   0\n {xdiff => lib/xdiff}/xmacros.h                     |   0\n {xdiff => lib/xdiff}/xmerge.c                      |   0\n {xdiff => lib/xdiff}/xpatience.c                   |   0\n {xdiff => lib/xdiff}/xprepare.c                    |   0\n {xdiff => lib/xdiff}/xprepare.h                    |   0\n {xdiff => lib/xdiff}/xtypes.h                      |   0\n {xdiff => lib/xdiff}/xutils.c                      |   0\n {xdiff => lib/xdiff}/xutils.h                      |   0\n meson.build                                        | 684 +++++++++---------\n 694 files changed, 819 insertions(+), 818 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 6f3d94e3a6..290cfd8f67 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -179,7 +179,7 @@ jobs:\n       uses: actions/checkout@v5\n       with:\n         repository: 'microsoft/vcpkg'\n-        path: 'compat/vcbuild/vcpkg'\n+        path: 'lib/compat/vcbuild/vcpkg'\n     - name: download vcpkg artifacts\n       uses: git-for-windows/get-azure-pipelines-artifact@v0\n       with:\n@@ -189,11 +189,11 @@ jobs:\n       uses: microsoft/setup-msbuild@v2\n     - name: copy dlls to root\n       shell: cmd\n-      run: compat\\vcbuild\\vcpkg_copy_dlls.bat release\n+      run: lib\\compat\\vcbuild\\vcpkg_copy_dlls.bat release\n     - name: generate Visual Studio solution\n       shell: bash\n       run: |\n-        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \\\n+        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/lib/compat/vcbuild/vcpkg/installed/x64-windows \\\n         -DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON\n     - name: MSBuild\n       run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142\n@@ -201,7 +201,7 @@ jobs:\n       shell: bash\n       env:\n         MSVC: 1\n-        VCPKG_ROOT: ${{github.workspace}}\\compat\\vcbuild\\vcpkg\n+        VCPKG_ROOT: ${{github.workspace}}\\lib\\compat\\vcbuild\\vcpkg\n       run: |\n         mkdir -p artifacts &&\n         eval \"$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)\"\ndiff --git a/.gitmodules b/.gitmodules\nindex cbeebdab7a..8bafb8bb49 100644\n--- a/.gitmodules\n+++ b/.gitmodules\n@@ -1,4 +1,4 @@\n [submodule \"sha1collisiondetection\"]\n-\tpath = sha1collisiondetection\n+\tpath = lib/sha1collisiondetection\n \turl = https://github.com/cr-marcstevens/sha1collisiondetection.git\n \tbranch = master\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex 2699f0b24a..c4fd5a5c87 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -505,10 +505,10 @@ lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER)\n .PHONY: lint-docs-fsck-msgids\n LINT_DOCS_FSCK_MSGIDS = .build/lint-docs/fsck-msgids.ok\n $(LINT_DOCS_FSCK_MSGIDS): lint-fsck-msgids.perl\n-$(LINT_DOCS_FSCK_MSGIDS): ../fsck.h fsck-msgids.adoc\n+$(LINT_DOCS_FSCK_MSGIDS): ../lib/fsck.h fsck-msgids.adoc\n \t$(call mkdir_p_parent_template)\n \t$(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \\\n-\t\t../fsck.h fsck-msgids.adoc $@\n+\t\t../lib/fsck.h fsck-msgids.adoc $@\n lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS)\n \n ## Lint: delimited sections\ndiff --git a/Makefile b/Makefile\nindex cedc234173..641dfbbf24 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -969,7 +969,7 @@ endif\n CFLAGS = -g -O2 -Wall\n LDFLAGS =\n CC_LD_DYNPATH = -Wl,-rpath,\n-BASIC_CFLAGS = -I.\n+BASIC_CFLAGS = -I. -Ilib\n BASIC_LDFLAGS =\n \n # library flags\n@@ -994,7 +994,7 @@ SANITIZE_LEAK =\n SANITIZE_ADDRESS =\n \n # For the 'coccicheck' target\n-SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I ,compat ewah refs sha256 trace2 win32 xdiff)\n+SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I lib/,compat ewah refs sha256 trace2 win32 xdiff)\n SPATCH_FLAGS =\n SPATCH_TEST_FLAGS =\n \n@@ -1085,292 +1085,292 @@ FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CMD)))\n FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES))\n FOUND_H_SOURCES = $(filter %.h,$(FOUND_SOURCE_FILES))\n \n-COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES) reftable/%,$(FOUND_C_SOURCES))\n+COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES) lib/reftable/%,$(FOUND_C_SOURCES))\n \n LIB_H = $(FOUND_H_SOURCES)\n \n-LIB_OBJS += abspath.o\n-LIB_OBJS += add-interactive.o\n-LIB_OBJS += add-patch.o\n-LIB_OBJS += advice.o\n-LIB_OBJS += alias.o\n-LIB_OBJS += alloc.o\n-LIB_OBJS += apply.o\n-LIB_OBJS += archive-tar.o\n-LIB_OBJS += archive-zip.o\n-LIB_OBJS += archive.o\n-LIB_OBJS += attr.o\n-LIB_OBJS += base85.o\n-LIB_OBJS += bisect.o\n-LIB_OBJS += blame.o\n-LIB_OBJS += blob.o\n-LIB_OBJS += bloom.o\n-LIB_OBJS += branch.o\n-LIB_OBJS += bundle-uri.o\n-LIB_OBJS += bundle.o\n-LIB_OBJS += cache-tree.o\n-LIB_OBJS += cbtree.o\n-LIB_OBJS += chdir-notify.o\n-LIB_OBJS += checkout.o\n-LIB_OBJS += chunk-format.o\n-LIB_OBJS += color.o\n-LIB_OBJS += column.o\n-LIB_OBJS += combine-diff.o\n-LIB_OBJS += commit-graph.o\n-LIB_OBJS += commit-reach.o\n-LIB_OBJS += commit.o\n-LIB_OBJS += common-exit.o\n-LIB_OBJS += common-init.o\n-LIB_OBJS += compat/nonblock.o\n-LIB_OBJS += compat/obstack.o\n-LIB_OBJS += compat/open.o\n-LIB_OBJS += compat/terminal.o\n-LIB_OBJS += compiler-tricks/not-constant.o\n-LIB_OBJS += config.o\n-LIB_OBJS += connect.o\n-LIB_OBJS += connected.o\n-LIB_OBJS += convert.o\n-LIB_OBJS += copy.o\n-LIB_OBJS += credential.o\n-LIB_OBJS += csum-file.o\n-LIB_OBJS += ctype.o\n-LIB_OBJS += date.o\n-LIB_OBJS += decorate.o\n-LIB_OBJS += delta-islands.o\n-LIB_OBJS += diagnose.o\n-LIB_OBJS += diff-delta.o\n-LIB_OBJS += diff-merges.o\n-LIB_OBJS += diff-lib.o\n-LIB_OBJS += diff-no-index.o\n-LIB_OBJS += diff.o\n-LIB_OBJS += diffcore-break.o\n-LIB_OBJS += diffcore-delta.o\n-LIB_OBJS += diffcore-order.o\n-LIB_OBJS += diffcore-pickaxe.o\n-LIB_OBJS += diffcore-rename.o\n-LIB_OBJS += diffcore-rotate.o\n-LIB_OBJS += dir-iterator.o\n-LIB_OBJS += dir.o\n-LIB_OBJS += editor.o\n-LIB_OBJS += entry.o\n-LIB_OBJS += environment.o\n-LIB_OBJS += ewah/bitmap.o\n-LIB_OBJS += ewah/ewah_bitmap.o\n-LIB_OBJS += ewah/ewah_io.o\n-LIB_OBJS += ewah/ewah_rlw.o\n-LIB_OBJS += exec-cmd.o\n-LIB_OBJS += fetch-negotiator.o\n-LIB_OBJS += fetch-pack.o\n-LIB_OBJS += fmt-merge-msg.o\n-LIB_OBJS += fsck.o\n-LIB_OBJS += fsmonitor.o\n-LIB_OBJS += fsmonitor-ipc.o\n-LIB_OBJS += fsmonitor-settings.o\n-LIB_OBJS += gettext.o\n-LIB_OBJS += git-zlib.o\n-LIB_OBJS += gpg-interface.o\n-LIB_OBJS += graph.o\n-LIB_OBJS += grep.o\n-LIB_OBJS += hash-lookup.o\n-LIB_OBJS += hash.o\n-LIB_OBJS += hashmap.o\n-LIB_OBJS += help.o\n-LIB_OBJS += hex.o\n-LIB_OBJS += hex-ll.o\n-LIB_OBJS += hook.o\n-LIB_OBJS += ident.o\n-LIB_OBJS += json-writer.o\n-LIB_OBJS += kwset.o\n-LIB_OBJS += levenshtein.o\n-LIB_OBJS += line-log.o\n-LIB_OBJS += line-range.o\n-LIB_OBJS += linear-assignment.o\n-LIB_OBJS += list-objects-filter-options.o\n-LIB_OBJS += list-objects-filter.o\n-LIB_OBJS += list-objects.o\n-LIB_OBJS += lockfile.o\n-LIB_OBJS += log-tree.o\n-LIB_OBJS += loose.o\n-LIB_OBJS += ls-refs.o\n-LIB_OBJS += mailinfo.o\n-LIB_OBJS += mailmap.o\n-LIB_OBJS += match-trees.o\n-LIB_OBJS += mem-pool.o\n-LIB_OBJS += merge-blobs.o\n-LIB_OBJS += merge-ll.o\n-LIB_OBJS += merge-ort.o\n-LIB_OBJS += merge-ort-wrappers.o\n-LIB_OBJS += merge.o\n-LIB_OBJS += midx.o\n-LIB_OBJS += midx-write.o\n-LIB_OBJS += name-hash.o\n-LIB_OBJS += negotiator/default.o\n-LIB_OBJS += negotiator/noop.o\n-LIB_OBJS += negotiator/skipping.o\n-LIB_OBJS += notes-cache.o\n-LIB_OBJS += notes-merge.o\n-LIB_OBJS += notes-utils.o\n-LIB_OBJS += notes.o\n-LIB_OBJS += object-file-convert.o\n-LIB_OBJS += object-file.o\n-LIB_OBJS += object-name.o\n-LIB_OBJS += object.o\n-LIB_OBJS += odb.o\n-LIB_OBJS += odb/source.o\n-LIB_OBJS += odb/source-files.o\n-LIB_OBJS += odb/streaming.o\n-LIB_OBJS += oid-array.o\n-LIB_OBJS += oidmap.o\n-LIB_OBJS += oidset.o\n-LIB_OBJS += oidtree.o\n-LIB_OBJS += pack-bitmap-write.o\n-LIB_OBJS += pack-bitmap.o\n-LIB_OBJS += pack-check.o\n-LIB_OBJS += pack-mtimes.o\n-LIB_OBJS += pack-objects.o\n-LIB_OBJS += pack-refs.o\n-LIB_OBJS += pack-revindex.o\n-LIB_OBJS += pack-write.o\n-LIB_OBJS += packfile.o\n-LIB_OBJS += pager.o\n-LIB_OBJS += parallel-checkout.o\n-LIB_OBJS += parse.o\n-LIB_OBJS += parse-options-cb.o\n-LIB_OBJS += parse-options.o\n-LIB_OBJS += patch-delta.o\n-LIB_OBJS += patch-ids.o\n-LIB_OBJS += path.o\n-LIB_OBJS += path-walk.o\n-LIB_OBJS += pathspec.o\n-LIB_OBJS += pkt-line.o\n-LIB_OBJS += preload-index.o\n-LIB_OBJS += pretty.o\n-LIB_OBJS += prio-queue.o\n-LIB_OBJS += progress.o\n-LIB_OBJS += promisor-remote.o\n-LIB_OBJS += prompt.o\n-LIB_OBJS += protocol.o\n-LIB_OBJS += protocol-caps.o\n-LIB_OBJS += prune-packed.o\n-LIB_OBJS += pseudo-merge.o\n-LIB_OBJS += quote.o\n-LIB_OBJS += range-diff.o\n-LIB_OBJS += reachable.o\n-LIB_OBJS += read-cache.o\n-LIB_OBJS += rebase-interactive.o\n-LIB_OBJS += rebase.o\n-LIB_OBJS += ref-filter.o\n-LIB_OBJS += reflog-walk.o\n-LIB_OBJS += reflog.o\n-LIB_OBJS += refs.o\n-LIB_OBJS += refs/debug.o\n-LIB_OBJS += refs/files-backend.o\n-LIB_OBJS += refs/reftable-backend.o\n-LIB_OBJS += refs/iterator.o\n-LIB_OBJS += refs/packed-backend.o\n-LIB_OBJS += refs/ref-cache.o\n-LIB_OBJS += refspec.o\n-LIB_OBJS += reftable/basics.o\n-LIB_OBJS += reftable/block.o\n-LIB_OBJS += reftable/blocksource.o\n-LIB_OBJS += reftable/error.o\n-LIB_OBJS += reftable/fsck.o\n-LIB_OBJS += reftable/iter.o\n-LIB_OBJS += reftable/merged.o\n-LIB_OBJS += reftable/pq.o\n-LIB_OBJS += reftable/record.o\n-LIB_OBJS += reftable/stack.o\n-LIB_OBJS += reftable/system.o\n-LIB_OBJS += reftable/table.o\n-LIB_OBJS += reftable/tree.o\n-LIB_OBJS += reftable/writer.o\n-LIB_OBJS += remote.o\n-LIB_OBJS += repack.o\n-LIB_OBJS += repack-cruft.o\n-LIB_OBJS += repack-filtered.o\n-LIB_OBJS += repack-geometry.o\n-LIB_OBJS += repack-midx.o\n-LIB_OBJS += repack-promisor.o\n-LIB_OBJS += replace-object.o\n-LIB_OBJS += replay.o\n-LIB_OBJS += repo-settings.o\n-LIB_OBJS += repository.o\n-LIB_OBJS += rerere.o\n-LIB_OBJS += reset.o\n-LIB_OBJS += resolve-undo.o\n-LIB_OBJS += revision.o\n-LIB_OBJS += run-command.o\n-LIB_OBJS += send-pack.o\n-LIB_OBJS += sequencer.o\n-LIB_OBJS += serve.o\n-LIB_OBJS += server-info.o\n-LIB_OBJS += setup.o\n-LIB_OBJS += shallow.o\n-LIB_OBJS += sideband.o\n-LIB_OBJS += sigchain.o\n-LIB_OBJS += sparse-index.o\n-LIB_OBJS += split-index.o\n-LIB_OBJS += stable-qsort.o\n-LIB_OBJS += statinfo.o\n-LIB_OBJS += strbuf.o\n-LIB_OBJS += string-list.o\n-LIB_OBJS += strmap.o\n-LIB_OBJS += strvec.o\n-LIB_OBJS += sub-process.o\n-LIB_OBJS += submodule-config.o\n-LIB_OBJS += submodule.o\n-LIB_OBJS += symlinks.o\n-LIB_OBJS += tag.o\n-LIB_OBJS += tempfile.o\n-LIB_OBJS += thread-utils.o\n-LIB_OBJS += tmp-objdir.o\n-LIB_OBJS += trace.o\n-LIB_OBJS += trace2.o\n-LIB_OBJS += trace2/tr2_cfg.o\n-LIB_OBJS += trace2/tr2_cmd_name.o\n-LIB_OBJS += trace2/tr2_ctr.o\n-LIB_OBJS += trace2/tr2_dst.o\n-LIB_OBJS += trace2/tr2_sid.o\n-LIB_OBJS += trace2/tr2_sysenv.o\n-LIB_OBJS += trace2/tr2_tbuf.o\n-LIB_OBJS += trace2/tr2_tgt_event.o\n-LIB_OBJS += trace2/tr2_tgt_normal.o\n-LIB_OBJS += trace2/tr2_tgt_perf.o\n-LIB_OBJS += trace2/tr2_tls.o\n-LIB_OBJS += trace2/tr2_tmr.o\n-LIB_OBJS += trailer.o\n-LIB_OBJS += transport-helper.o\n-LIB_OBJS += transport.o\n-LIB_OBJS += tree-diff.o\n-LIB_OBJS += tree-walk.o\n-LIB_OBJS += tree.o\n-LIB_OBJS += unpack-trees.o\n-LIB_OBJS += upload-pack.o\n-LIB_OBJS += url.o\n-LIB_OBJS += urlmatch.o\n-LIB_OBJS += usage.o\n-LIB_OBJS += userdiff.o\n-LIB_OBJS += utf8.o\n+LIB_OBJS += lib/abspath.o\n+LIB_OBJS += lib/add-interactive.o\n+LIB_OBJS += lib/add-patch.o\n+LIB_OBJS += lib/advice.o\n+LIB_OBJS += lib/alias.o\n+LIB_OBJS += lib/alloc.o\n+LIB_OBJS += lib/apply.o\n+LIB_OBJS += lib/archive-tar.o\n+LIB_OBJS += lib/archive-zip.o\n+LIB_OBJS += lib/archive.o\n+LIB_OBJS += lib/attr.o\n+LIB_OBJS += lib/base85.o\n+LIB_OBJS += lib/bisect.o\n+LIB_OBJS += lib/blame.o\n+LIB_OBJS += lib/blob.o\n+LIB_OBJS += lib/bloom.o\n+LIB_OBJS += lib/branch.o\n+LIB_OBJS += lib/bundle-uri.o\n+LIB_OBJS += lib/bundle.o\n+LIB_OBJS += lib/cache-tree.o\n+LIB_OBJS += lib/cbtree.o\n+LIB_OBJS += lib/chdir-notify.o\n+LIB_OBJS += lib/checkout.o\n+LIB_OBJS += lib/chunk-format.o\n+LIB_OBJS += lib/color.o\n+LIB_OBJS += lib/column.o\n+LIB_OBJS += lib/combine-diff.o\n+LIB_OBJS += lib/commit-graph.o\n+LIB_OBJS += lib/commit-reach.o\n+LIB_OBJS += lib/commit.o\n+LIB_OBJS += lib/common-exit.o\n+LIB_OBJS += lib/common-init.o\n+LIB_OBJS += lib/compat/nonblock.o\n+LIB_OBJS += lib/compat/obstack.o\n+LIB_OBJS += lib/compat/open.o\n+LIB_OBJS += lib/compat/terminal.o\n+LIB_OBJS += lib/compiler-tricks/not-constant.o\n+LIB_OBJS += lib/config.o\n+LIB_OBJS += lib/connect.o\n+LIB_OBJS += lib/connected.o\n+LIB_OBJS += lib/convert.o\n+LIB_OBJS += lib/copy.o\n+LIB_OBJS += lib/credential.o\n+LIB_OBJS += lib/csum-file.o\n+LIB_OBJS += lib/ctype.o\n+LIB_OBJS += lib/date.o\n+LIB_OBJS += lib/decorate.o\n+LIB_OBJS += lib/delta-islands.o\n+LIB_OBJS += lib/diagnose.o\n+LIB_OBJS += lib/diff-delta.o\n+LIB_OBJS += lib/diff-merges.o\n+LIB_OBJS += lib/diff-lib.o\n+LIB_OBJS += lib/diff-no-index.o\n+LIB_OBJS += lib/diff.o\n+LIB_OBJS += lib/diffcore-break.o\n+LIB_OBJS += lib/diffcore-delta.o\n+LIB_OBJS += lib/diffcore-order.o\n+LIB_OBJS += lib/diffcore-pickaxe.o\n+LIB_OBJS += lib/diffcore-rename.o\n+LIB_OBJS += lib/diffcore-rotate.o\n+LIB_OBJS += lib/dir-iterator.o\n+LIB_OBJS += lib/dir.o\n+LIB_OBJS += lib/editor.o\n+LIB_OBJS += lib/entry.o\n+LIB_OBJS += lib/environment.o\n+LIB_OBJS += lib/ewah/bitmap.o\n+LIB_OBJS += lib/ewah/ewah_bitmap.o\n+LIB_OBJS += lib/ewah/ewah_io.o\n+LIB_OBJS += lib/ewah/ewah_rlw.o\n+LIB_OBJS += lib/exec-cmd.o\n+LIB_OBJS += lib/fetch-negotiator.o\n+LIB_OBJS += lib/fetch-pack.o\n+LIB_OBJS += lib/fmt-merge-msg.o\n+LIB_OBJS += lib/fsck.o\n+LIB_OBJS += lib/fsmonitor.o\n+LIB_OBJS += lib/fsmonitor-ipc.o\n+LIB_OBJS += lib/fsmonitor-settings.o\n+LIB_OBJS += lib/gettext.o\n+LIB_OBJS += lib/git-zlib.o\n+LIB_OBJS += lib/gpg-interface.o\n+LIB_OBJS += lib/graph.o\n+LIB_OBJS += lib/grep.o\n+LIB_OBJS += lib/hash-lookup.o\n+LIB_OBJS += lib/hash.o\n+LIB_OBJS += lib/hashmap.o\n+LIB_OBJS += lib/help.o\n+LIB_OBJS += lib/hex.o\n+LIB_OBJS += lib/hex-ll.o\n+LIB_OBJS += lib/hook.o\n+LIB_OBJS += lib/ident.o\n+LIB_OBJS += lib/json-writer.o\n+LIB_OBJS += lib/kwset.o\n+LIB_OBJS += lib/levenshtein.o\n+LIB_OBJS += lib/line-log.o\n+LIB_OBJS += lib/line-range.o\n+LIB_OBJS += lib/linear-assignment.o\n+LIB_OBJS += lib/list-objects-filter-options.o\n+LIB_OBJS += lib/list-objects-filter.o\n+LIB_OBJS += lib/list-objects.o\n+LIB_OBJS += lib/lockfile.o\n+LIB_OBJS += lib/log-tree.o\n+LIB_OBJS += lib/loose.o\n+LIB_OBJS += lib/ls-refs.o\n+LIB_OBJS += lib/mailinfo.o\n+LIB_OBJS += lib/mailmap.o\n+LIB_OBJS += lib/match-trees.o\n+LIB_OBJS += lib/mem-pool.o\n+LIB_OBJS += lib/merge-blobs.o\n+LIB_OBJS += lib/merge-ll.o\n+LIB_OBJS += lib/merge-ort.o\n+LIB_OBJS += lib/merge-ort-wrappers.o\n+LIB_OBJS += lib/merge.o\n+LIB_OBJS += lib/midx.o\n+LIB_OBJS += lib/midx-write.o\n+LIB_OBJS += lib/name-hash.o\n+LIB_OBJS += lib/negotiator/default.o\n+LIB_OBJS += lib/negotiator/noop.o\n+LIB_OBJS += lib/negotiator/skipping.o\n+LIB_OBJS += lib/notes-cache.o\n+LIB_OBJS += lib/notes-merge.o\n+LIB_OBJS += lib/notes-utils.o\n+LIB_OBJS += lib/notes.o\n+LIB_OBJS += lib/object-file-convert.o\n+LIB_OBJS += lib/object-file.o\n+LIB_OBJS += lib/object-name.o\n+LIB_OBJS += lib/object.o\n+LIB_OBJS += lib/odb.o\n+LIB_OBJS += lib/odb/source.o\n+LIB_OBJS += lib/odb/source-files.o\n+LIB_OBJS += lib/odb/streaming.o\n+LIB_OBJS += lib/oid-array.o\n+LIB_OBJS += lib/oidmap.o\n+LIB_OBJS += lib/oidset.o\n+LIB_OBJS += lib/oidtree.o\n+LIB_OBJS += lib/pack-bitmap-write.o\n+LIB_OBJS += lib/pack-bitmap.o\n+LIB_OBJS += lib/pack-check.o\n+LIB_OBJS += lib/pack-mtimes.o\n+LIB_OBJS += lib/pack-objects.o\n+LIB_OBJS += lib/pack-refs.o\n+LIB_OBJS += lib/pack-revindex.o\n+LIB_OBJS += lib/pack-write.o\n+LIB_OBJS += lib/packfile.o\n+LIB_OBJS += lib/pager.o\n+LIB_OBJS += lib/parallel-checkout.o\n+LIB_OBJS += lib/parse.o\n+LIB_OBJS += lib/parse-options-cb.o\n+LIB_OBJS += lib/parse-options.o\n+LIB_OBJS += lib/patch-delta.o\n+LIB_OBJS += lib/patch-ids.o\n+LIB_OBJS += lib/path.o\n+LIB_OBJS += lib/path-walk.o\n+LIB_OBJS += lib/pathspec.o\n+LIB_OBJS += lib/pkt-line.o\n+LIB_OBJS += lib/preload-index.o\n+LIB_OBJS += lib/pretty.o\n+LIB_OBJS += lib/prio-queue.o\n+LIB_OBJS += lib/progress.o\n+LIB_OBJS += lib/promisor-remote.o\n+LIB_OBJS += lib/prompt.o\n+LIB_OBJS += lib/protocol.o\n+LIB_OBJS += lib/protocol-caps.o\n+LIB_OBJS += lib/prune-packed.o\n+LIB_OBJS += lib/pseudo-merge.o\n+LIB_OBJS += lib/quote.o\n+LIB_OBJS += lib/range-diff.o\n+LIB_OBJS += lib/reachable.o\n+LIB_OBJS += lib/read-cache.o\n+LIB_OBJS += lib/rebase-interactive.o\n+LIB_OBJS += lib/rebase.o\n+LIB_OBJS += lib/ref-filter.o\n+LIB_OBJS += lib/reflog-walk.o\n+LIB_OBJS += lib/reflog.o\n+LIB_OBJS += lib/refs.o\n+LIB_OBJS += lib/refs/debug.o\n+LIB_OBJS += lib/refs/files-backend.o\n+LIB_OBJS += lib/refs/reftable-backend.o\n+LIB_OBJS += lib/refs/iterator.o\n+LIB_OBJS += lib/refs/packed-backend.o\n+LIB_OBJS += lib/refs/ref-cache.o\n+LIB_OBJS += lib/refspec.o\n+LIB_OBJS += lib/reftable/basics.o\n+LIB_OBJS += lib/reftable/block.o\n+LIB_OBJS += lib/reftable/blocksource.o\n+LIB_OBJS += lib/reftable/error.o\n+LIB_OBJS += lib/reftable/fsck.o\n+LIB_OBJS += lib/reftable/iter.o\n+LIB_OBJS += lib/reftable/merged.o\n+LIB_OBJS += lib/reftable/pq.o\n+LIB_OBJS += lib/reftable/record.o\n+LIB_OBJS += lib/reftable/stack.o\n+LIB_OBJS += lib/reftable/system.o\n+LIB_OBJS += lib/reftable/table.o\n+LIB_OBJS += lib/reftable/tree.o\n+LIB_OBJS += lib/reftable/writer.o\n+LIB_OBJS += lib/remote.o\n+LIB_OBJS += lib/repack.o\n+LIB_OBJS += lib/repack-cruft.o\n+LIB_OBJS += lib/repack-filtered.o\n+LIB_OBJS += lib/repack-geometry.o\n+LIB_OBJS += lib/repack-midx.o\n+LIB_OBJS += lib/repack-promisor.o\n+LIB_OBJS += lib/replace-object.o\n+LIB_OBJS += lib/replay.o\n+LIB_OBJS += lib/repo-settings.o\n+LIB_OBJS += lib/repository.o\n+LIB_OBJS += lib/rerere.o\n+LIB_OBJS += lib/reset.o\n+LIB_OBJS += lib/resolve-undo.o\n+LIB_OBJS += lib/revision.o\n+LIB_OBJS += lib/run-command.o\n+LIB_OBJS += lib/send-pack.o\n+LIB_OBJS += lib/sequencer.o\n+LIB_OBJS += lib/serve.o\n+LIB_OBJS += lib/server-info.o\n+LIB_OBJS += lib/setup.o\n+LIB_OBJS += lib/shallow.o\n+LIB_OBJS += lib/sideband.o\n+LIB_OBJS += lib/sigchain.o\n+LIB_OBJS += lib/sparse-index.o\n+LIB_OBJS += lib/split-index.o\n+LIB_OBJS += lib/stable-qsort.o\n+LIB_OBJS += lib/statinfo.o\n+LIB_OBJS += lib/strbuf.o\n+LIB_OBJS += lib/string-list.o\n+LIB_OBJS += lib/strmap.o\n+LIB_OBJS += lib/strvec.o\n+LIB_OBJS += lib/sub-process.o\n+LIB_OBJS += lib/submodule-config.o\n+LIB_OBJS += lib/submodule.o\n+LIB_OBJS += lib/symlinks.o\n+LIB_OBJS += lib/tag.o\n+LIB_OBJS += lib/tempfile.o\n+LIB_OBJS += lib/thread-utils.o\n+LIB_OBJS += lib/tmp-objdir.o\n+LIB_OBJS += lib/trace.o\n+LIB_OBJS += lib/trace2.o\n+LIB_OBJS += lib/trace2/tr2_cfg.o\n+LIB_OBJS += lib/trace2/tr2_cmd_name.o\n+LIB_OBJS += lib/trace2/tr2_ctr.o\n+LIB_OBJS += lib/trace2/tr2_dst.o\n+LIB_OBJS += lib/trace2/tr2_sid.o\n+LIB_OBJS += lib/trace2/tr2_sysenv.o\n+LIB_OBJS += lib/trace2/tr2_tbuf.o\n+LIB_OBJS += lib/trace2/tr2_tgt_event.o\n+LIB_OBJS += lib/trace2/tr2_tgt_normal.o\n+LIB_OBJS += lib/trace2/tr2_tgt_perf.o\n+LIB_OBJS += lib/trace2/tr2_tls.o\n+LIB_OBJS += lib/trace2/tr2_tmr.o\n+LIB_OBJS += lib/trailer.o\n+LIB_OBJS += lib/transport-helper.o\n+LIB_OBJS += lib/transport.o\n+LIB_OBJS += lib/tree-diff.o\n+LIB_OBJS += lib/tree-walk.o\n+LIB_OBJS += lib/tree.o\n+LIB_OBJS += lib/unpack-trees.o\n+LIB_OBJS += lib/upload-pack.o\n+LIB_OBJS += lib/url.o\n+LIB_OBJS += lib/urlmatch.o\n+LIB_OBJS += lib/usage.o\n+LIB_OBJS += lib/userdiff.o\n+LIB_OBJS += lib/utf8.o\n ifndef WITH_RUST\n-LIB_OBJS += varint.o\n-endif\n-LIB_OBJS += version.o\n-LIB_OBJS += versioncmp.o\n-LIB_OBJS += walker.o\n-LIB_OBJS += wildmatch.o\n-LIB_OBJS += worktree.o\n-LIB_OBJS += wrapper.o\n-LIB_OBJS += write-or-die.o\n-LIB_OBJS += ws.o\n-LIB_OBJS += wt-status.o\n-LIB_OBJS += xdiff-interface.o\n-LIB_OBJS += xdiff/xdiffi.o\n-LIB_OBJS += xdiff/xemit.o\n-LIB_OBJS += xdiff/xhistogram.o\n-LIB_OBJS += xdiff/xmerge.o\n-LIB_OBJS += xdiff/xpatience.o\n-LIB_OBJS += xdiff/xprepare.o\n-LIB_OBJS += xdiff/xutils.o\n+LIB_OBJS += lib/varint.o\n+endif\n+LIB_OBJS += lib/version.o\n+LIB_OBJS += lib/versioncmp.o\n+LIB_OBJS += lib/walker.o\n+LIB_OBJS += lib/wildmatch.o\n+LIB_OBJS += lib/worktree.o\n+LIB_OBJS += lib/wrapper.o\n+LIB_OBJS += lib/write-or-die.o\n+LIB_OBJS += lib/ws.o\n+LIB_OBJS += lib/wt-status.o\n+LIB_OBJS += lib/xdiff-interface.o\n+LIB_OBJS += lib/xdiff/xdiffi.o\n+LIB_OBJS += lib/xdiff/xemit.o\n+LIB_OBJS += lib/xdiff/xhistogram.o\n+LIB_OBJS += lib/xdiff/xmerge.o\n+LIB_OBJS += lib/xdiff/xpatience.o\n+LIB_OBJS += lib/xdiff/xprepare.o\n+LIB_OBJS += lib/xdiff/xutils.o\n \n BUILTIN_OBJS += builtin/add.o\n BUILTIN_OBJS += builtin/am.o\n@@ -1509,14 +1509,14 @@ BUILTIN_OBJS += builtin/write-tree.o\n # files which are taken from some third-party source where we want to be\n # less strict about issues such as coding style so we don't diverge from\n # upstream unnecessarily (making merging in future changes easier).\n-THIRD_PARTY_SOURCES += compat/inet_ntop.c\n-THIRD_PARTY_SOURCES += compat/inet_pton.c\n-THIRD_PARTY_SOURCES += compat/nedmalloc/%\n-THIRD_PARTY_SOURCES += compat/obstack.%\n-THIRD_PARTY_SOURCES += compat/poll/%\n-THIRD_PARTY_SOURCES += compat/regex/%\n-THIRD_PARTY_SOURCES += sha1collisiondetection/%\n-THIRD_PARTY_SOURCES += sha1dc/%\n+THIRD_PARTY_SOURCES += lib/compat/inet_ntop.c\n+THIRD_PARTY_SOURCES += lib/compat/inet_pton.c\n+THIRD_PARTY_SOURCES += lib/compat/nedmalloc/%\n+THIRD_PARTY_SOURCES += lib/compat/obstack.%\n+THIRD_PARTY_SOURCES += lib/compat/poll/%\n+THIRD_PARTY_SOURCES += lib/compat/regex/%\n+THIRD_PARTY_SOURCES += lib/sha1collisiondetection/%\n+THIRD_PARTY_SOURCES += lib/sha1dc/%\n THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/%\n THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/clar/%\n \n@@ -1746,7 +1746,7 @@ endif\n \n ifdef NO_LIBGEN_H\n \tCOMPAT_CFLAGS += -DNO_LIBGEN_H\n-\tCOMPAT_OBJS += compat/basename.o\n+\tCOMPAT_OBJS += lib/compat/basename.o\n endif\n \n ifdef USE_LIBPCRE1\n@@ -1812,7 +1812,7 @@ else\n         endif\n         ifdef USE_CURL_FOR_IMAP_SEND\n \t\tBASIC_CFLAGS += -DUSE_CURL_FOR_IMAP_SEND\n-\t\tIMAP_SEND_BUILDDEPS = http.o\n+\t\tIMAP_SEND_BUILDDEPS = lib/http.o\n \t\tIMAP_SEND_LDFLAGS += $(CURL_LIBCURL)\n         endif\n         ifndef NO_EXPAT\n@@ -1933,11 +1933,11 @@ ifdef NO_NSEC\n endif\n ifdef SNPRINTF_RETURNS_BOGUS\n \tCOMPAT_CFLAGS += -DSNPRINTF_RETURNS_BOGUS\n-\tCOMPAT_OBJS += compat/snprintf.o\n+\tCOMPAT_OBJS += lib/compat/snprintf.o\n endif\n ifdef FREAD_READS_DIRECTORIES\n \tCOMPAT_CFLAGS += -DFREAD_READS_DIRECTORIES\n-\tCOMPAT_OBJS += compat/fopen.o\n+\tCOMPAT_OBJS += lib/compat/fopen.o\n endif\n ifdef OPEN_RETURNS_EINTR\n \tCOMPAT_CFLAGS += -DOPEN_RETURNS_EINTR\n@@ -1952,38 +1952,38 @@ endif\n ifdef NO_POLL\n \tNO_POLL_H = YesPlease\n \tNO_SYS_POLL_H = YesPlease\n-\tCOMPAT_CFLAGS += -DNO_POLL -Icompat/poll\n-\tCOMPAT_OBJS += compat/poll/poll.o\n+\tCOMPAT_CFLAGS += -DNO_POLL -Ilib/compat/poll\n+\tCOMPAT_OBJS += lib/compat/poll/poll.o\n endif\n ifdef NO_STRCASESTR\n \tCOMPAT_CFLAGS += -DNO_STRCASESTR\n-\tCOMPAT_OBJS += compat/strcasestr.o\n+\tCOMPAT_OBJS += lib/compat/strcasestr.o\n endif\n ifdef NO_STRLCPY\n \tCOMPAT_CFLAGS += -DNO_STRLCPY\n-\tCOMPAT_OBJS += compat/strlcpy.o\n+\tCOMPAT_OBJS += lib/compat/strlcpy.o\n endif\n ifdef NO_STRTOUMAX\n \tCOMPAT_CFLAGS += -DNO_STRTOUMAX\n-\tCOMPAT_OBJS += compat/strtoumax.o compat/strtoimax.o\n+\tCOMPAT_OBJS += lib/compat/strtoumax.o lib/compat/strtoimax.o\n endif\n ifdef NO_STRTOULL\n \tCOMPAT_CFLAGS += -DNO_STRTOULL\n endif\n ifdef NO_SETENV\n \tCOMPAT_CFLAGS += -DNO_SETENV\n-\tCOMPAT_OBJS += compat/setenv.o\n+\tCOMPAT_OBJS += lib/compat/setenv.o\n endif\n ifdef NO_MKDTEMP\n \tCOMPAT_CFLAGS += -DNO_MKDTEMP\n endif\n ifdef MKDIR_WO_TRAILING_SLASH\n \tCOMPAT_CFLAGS += -DMKDIR_WO_TRAILING_SLASH\n-\tCOMPAT_OBJS += compat/mkdir.o\n+\tCOMPAT_OBJS += lib/compat/mkdir.o\n endif\n ifdef NO_UNSETENV\n \tCOMPAT_CFLAGS += -DNO_UNSETENV\n-\tCOMPAT_OBJS += compat/unsetenv.o\n+\tCOMPAT_OBJS += lib/compat/unsetenv.o\n endif\n ifdef NO_SYS_SELECT_H\n \tBASIC_CFLAGS += -DNO_SYS_SELECT_H\n@@ -2005,11 +2005,11 @@ ifdef NO_INITGROUPS\n endif\n ifdef NO_MMAP\n \tCOMPAT_CFLAGS += -DNO_MMAP\n-\tCOMPAT_OBJS += compat/mmap.o\n+\tCOMPAT_OBJS += lib/compat/mmap.o\n else\n         ifdef USE_WIN32_MMAP\n \t\tCOMPAT_CFLAGS += -DUSE_WIN32_MMAP\n-\t\tCOMPAT_OBJS += compat/win32mmap.o\n+\t\tCOMPAT_OBJS += lib/compat/win32mmap.o\n         endif\n endif\n ifdef MMAP_PREVENTS_DELETE\n@@ -2027,7 +2027,7 @@ ifdef NO_SETITIMER\n endif\n ifdef NO_PREAD\n \tCOMPAT_CFLAGS += -DNO_PREAD\n-\tCOMPAT_OBJS += compat/pread.o\n+\tCOMPAT_OBJS += lib/compat/pread.o\n endif\n ifdef NO_FAST_WORKING_DIRECTORY\n \tBASIC_CFLAGS += -DNO_FAST_WORKING_DIRECTORY\n@@ -2037,7 +2037,7 @@ ifdef NO_TRUSTABLE_FILEMODE\n endif\n ifdef NEEDS_MODE_TRANSLATION\n \tCOMPAT_CFLAGS += -DNEEDS_MODE_TRANSLATION\n-\tCOMPAT_OBJS += compat/stat.o\n+\tCOMPAT_OBJS += lib/compat/stat.o\n endif\n ifdef NO_IPV6\n \tBASIC_CFLAGS += -DNO_IPV6\n@@ -2053,18 +2053,18 @@ else\n endif\n endif\n ifdef NO_INET_NTOP\n-\tLIB_OBJS += compat/inet_ntop.o\n+\tLIB_OBJS += lib/compat/inet_ntop.o\n \tBASIC_CFLAGS += -DNO_INET_NTOP\n endif\n ifdef NO_INET_PTON\n-\tLIB_OBJS += compat/inet_pton.o\n+\tLIB_OBJS += lib/compat/inet_pton.o\n \tBASIC_CFLAGS += -DNO_INET_PTON\n endif\n ifdef NO_UNIX_SOCKETS\n \tBASIC_CFLAGS += -DNO_UNIX_SOCKETS\n else\n-\tLIB_OBJS += unix-socket.o\n-\tLIB_OBJS += unix-stream-server.o\n+\tLIB_OBJS += lib/unix-socket.o\n+\tLIB_OBJS += lib/unix-stream-server.o\n endif\n \n # Simple IPC requires threads and platform-specific IPC support.\n@@ -2080,14 +2080,14 @@ endif\n #\n ifdef USE_WIN32_IPC\n \tBASIC_CFLAGS += -DSUPPORTS_SIMPLE_IPC\n-\tLIB_OBJS += compat/simple-ipc/ipc-shared.o\n-\tLIB_OBJS += compat/simple-ipc/ipc-win32.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-shared.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-win32.o\n else\n ifndef NO_PTHREADS\n ifndef NO_UNIX_SOCKETS\n \tBASIC_CFLAGS += -DSUPPORTS_SIMPLE_IPC\n-\tLIB_OBJS += compat/simple-ipc/ipc-shared.o\n-\tLIB_OBJS += compat/simple-ipc/ipc-unix-socket.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-shared.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-unix-socket.o\n endif\n endif\n endif\n@@ -2122,7 +2122,7 @@ ifdef OPENSSL_SHA1\n \tBASIC_CFLAGS += -DSHA1_OPENSSL\n else\n ifdef BLK_SHA1\n-\tLIB_OBJS += block-sha1/sha1.o\n+\tLIB_OBJS += lib/block-sha1/sha1.o\n \tBASIC_CFLAGS += -DSHA1_BLK\n else\n ifdef APPLE_COMMON_CRYPTO_SHA1\n@@ -2130,7 +2130,7 @@ ifdef APPLE_COMMON_CRYPTO_SHA1\n \tBASIC_CFLAGS += -DSHA1_APPLE\n else\n \tBASIC_CFLAGS += -DSHA1_DC\n-\tLIB_OBJS += sha1dc_git.o\n+\tLIB_OBJS += lib/sha1dc_git.o\n ifdef DC_SHA1_EXTERNAL\n         ifdef DC_SHA1_SUBMODULE\n                 ifneq ($(DC_SHA1_SUBMODULE),auto)\n@@ -2141,12 +2141,12 @@ $(error Only set DC_SHA1_EXTERNAL or DC_SHA1_SUBMODULE, not both)\n \tEXTLIBS += -lsha1detectcoll\n else\n ifdef DC_SHA1_SUBMODULE\n-\tLIB_OBJS += sha1collisiondetection/lib/sha1.o\n-\tLIB_OBJS += sha1collisiondetection/lib/ubc_check.o\n+\tLIB_OBJS += lib/sha1collisiondetection/lib/sha1.o\n+\tLIB_OBJS += lib/sha1collisiondetection/lib/ubc_check.o\n \tBASIC_CFLAGS += -DDC_SHA1_SUBMODULE\n else\n-\tLIB_OBJS += sha1dc/sha1.o\n-\tLIB_OBJS += sha1dc/ubc_check.o\n+\tLIB_OBJS += lib/sha1dc/sha1.o\n+\tLIB_OBJS += lib/sha1dc/ubc_check.o\n endif\n \tBASIC_CFLAGS += \\\n \t\t-DSHA1DC_NO_STANDARD_INCLUDES \\\n@@ -2166,7 +2166,7 @@ endif\n else\n ifdef BLK_SHA1_UNSAFE\n ifndef BLK_SHA1\n-\tLIB_OBJS += block-sha1/sha1.o\n+\tLIB_OBJS += lib/block-sha1/sha1.o\n \tBASIC_CFLAGS += -DSHA1_BLK_UNSAFE\n endif\n else\n@@ -2191,23 +2191,23 @@ ifdef GCRYPT_SHA256\n \tBASIC_CFLAGS += -DSHA256_GCRYPT\n \tEXTLIBS += -lgcrypt\n else\n-\tLIB_OBJS += sha256/block/sha256.o\n+\tLIB_OBJS += lib/sha256/block/sha256.o\n \tBASIC_CFLAGS += -DSHA256_BLK\n endif\n endif\n endif\n \n ifdef SHA1_MAX_BLOCK_SIZE\n-\tLIB_OBJS += compat/sha1-chunked.o\n+\tLIB_OBJS += lib/compat/sha1-chunked.o\n \tBASIC_CFLAGS += -DSHA1_MAX_BLOCK_SIZE=\"$(SHA1_MAX_BLOCK_SIZE)\"\n endif\n ifdef NO_HSTRERROR\n \tCOMPAT_CFLAGS += -DNO_HSTRERROR\n-\tCOMPAT_OBJS += compat/hstrerror.o\n+\tCOMPAT_OBJS += lib/compat/hstrerror.o\n endif\n ifdef NO_MEMMEM\n \tCOMPAT_CFLAGS += -DNO_MEMMEM\n-\tCOMPAT_OBJS += compat/memmem.o\n+\tCOMPAT_OBJS += lib/compat/memmem.o\n endif\n ifdef NO_GETPAGESIZE\n \tCOMPAT_CFLAGS += -DNO_GETPAGESIZE\n@@ -2218,7 +2218,7 @@ endif\n ifdef HAVE_ISO_QSORT_S\n \tCOMPAT_CFLAGS += -DHAVE_ISO_QSORT_S\n else\n-\tCOMPAT_OBJS += compat/qsort_s.o\n+\tCOMPAT_OBJS += lib/compat/qsort_s.o\n endif\n ifdef RUNTIME_PREFIX\n \tCOMPAT_CFLAGS += -DRUNTIME_PREFIX\n@@ -2255,12 +2255,12 @@ ifdef UNRELIABLE_FSTAT\n \tBASIC_CFLAGS += -DUNRELIABLE_FSTAT\n endif\n ifdef NO_REGEX\n-\tCOMPAT_CFLAGS += -Icompat/regex\n-\tCOMPAT_OBJS += compat/regex/regex.o\n+\tCOMPAT_CFLAGS += -Ilib/compat/regex\n+\tCOMPAT_OBJS += lib/compat/regex/regex.o\n else\n ifdef USE_ENHANCED_BASIC_REGULAR_EXPRESSIONS\n \tCOMPAT_CFLAGS += -DUSE_ENHANCED_BASIC_REGULAR_EXPRESSIONS\n-\tCOMPAT_OBJS += compat/regcomp_enhanced.o\n+\tCOMPAT_OBJS += lib/compat/regcomp_enhanced.o\n endif\n endif\n ifdef NATIVE_CRLF\n@@ -2268,14 +2268,14 @@ ifdef NATIVE_CRLF\n endif\n \n ifdef USE_NED_ALLOCATOR\n-\tCOMPAT_CFLAGS += -Icompat/nedmalloc\n-\tCOMPAT_OBJS += compat/nedmalloc/nedmalloc.o\n+\tCOMPAT_CFLAGS += -Ilib/compat/nedmalloc\n+\tCOMPAT_OBJS += lib/compat/nedmalloc/nedmalloc.o\n \tOVERRIDE_STRDUP = YesPlease\n endif\n \n ifdef OVERRIDE_STRDUP\n \tCOMPAT_CFLAGS += -DOVERRIDE_STRDUP\n-\tCOMPAT_OBJS += compat/strdup.o\n+\tCOMPAT_OBJS += lib/compat/strdup.o\n endif\n \n ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT\n@@ -2337,7 +2337,7 @@ ifneq ($(findstring openssl,$(CSPRNG_METHOD)),)\n endif\n \n ifndef HAVE_PLATFORM_PROCINFO\n-\tCOMPAT_OBJS += compat/stub/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/stub/procinfo.o\n endif\n \n ifdef RUNTIME_PREFIX\n@@ -2367,25 +2367,25 @@ endif\n \n ifdef FILENO_IS_A_MACRO\n \tCOMPAT_CFLAGS += -DFILENO_IS_A_MACRO\n-\tCOMPAT_OBJS += compat/fileno.o\n+\tCOMPAT_OBJS += lib/compat/fileno.o\n endif\n \n ifdef NEED_ACCESS_ROOT_HANDLER\n \tCOMPAT_CFLAGS += -DNEED_ACCESS_ROOT_HANDLER\n-\tCOMPAT_OBJS += compat/access.o\n+\tCOMPAT_OBJS += lib/compat/access.o\n endif\n \n ifdef FSMONITOR_DAEMON_BACKEND\n \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_DAEMON_BACKEND\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-ipc-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-ipc-$(FSMONITOR_DAEMON_BACKEND).o\n endif\n \n ifdef FSMONITOR_OS_SETTINGS\n \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_OS_SETTINGS\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-path-utils-$(FSMONITOR_OS_SETTINGS).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-path-utils-$(FSMONITOR_OS_SETTINGS).o\n endif\n \n ifdef WITH_BREAKING_CHANGES\n@@ -2669,7 +2669,7 @@ git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) \\\n \t\t$(filter %.o,$^) $(LIBS)\n \n-help.sp help.s help.o: command-list.h\n+lib/help.sp lib/help.s lib/help.o: command-list.h\n builtin/bugreport.sp builtin/bugreport.s builtin/bugreport.o: hook-list.h\n builtin/hook.sp builtin/hook.s builtin/hook.o: hook-list.h\n \n@@ -2682,13 +2682,13 @@ builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n PAGER_ENV_SQ = $(subst ','\\'',$(PAGER_ENV))\n PAGER_ENV_CQ = \"$(subst \",\\\",$(subst \\,\\\\,$(PAGER_ENV)))\"\n PAGER_ENV_CQ_SQ = $(subst ','\\'',$(PAGER_ENV_CQ))\n-pager.sp pager.s pager.o: EXTRA_CPPFLAGS = \\\n+lib/pager.sp lib/pager.s lib/pager.o: EXTRA_CPPFLAGS = \\\n \t-DPAGER_ENV='$(PAGER_ENV_CQ_SQ)'\n \n-version-def.h: version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT\n+version-def.h: lib/version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT\n \t$(QUIET_GEN)$(call version_gen,\"$(shell pwd)\",$<,$@)\n \n-version.sp version.s version.o: version-def.h\n+lib/version.sp lib/version.s lib/version.o: version-def.h\n \n $(BUILT_INS): git$X\n \t$(QUIET_BUILT_IN)$(RM) $@ && \\\n@@ -2881,7 +2881,7 @@ ifdef INCLUDE_LIBGIT_RS\n endif\n \n ifndef NO_CURL\n-\tOBJECTS += http.o http-walker.o remote-curl.o\n+\tOBJECTS += lib/http.o lib/http-walker.o remote-curl.o\n endif\n \n .PHONY: objects\n@@ -2946,50 +2946,50 @@ compile_commands.json:\n \t@if test -s $@+; then mv $@+ $@; else $(RM) $@+; fi\n endif\n \n-exec-cmd.sp exec-cmd.s exec-cmd.o: GIT-PREFIX\n-exec-cmd.sp exec-cmd.s exec-cmd.o: EXTRA_CPPFLAGS = \\\n+lib/exec-cmd.sp lib/exec-cmd.s lib/exec-cmd.o: GIT-PREFIX\n+lib/exec-cmd.sp lib/exec-cmd.s lib/exec-cmd.o: EXTRA_CPPFLAGS = \\\n \t'-DGIT_EXEC_PATH=\"$(gitexecdir_SQ)\"' \\\n \t'-DGIT_LOCALE_PATH=\"$(localedir_relative_SQ)\"' \\\n \t'-DBINDIR=\"$(bindir_relative_SQ)\"' \\\n \t'-DFALLBACK_RUNTIME_PREFIX=\"$(prefix_SQ)\"'\n \n-setup.sp setup.s setup.o: GIT-PREFIX\n-setup.sp setup.s setup.o: EXTRA_CPPFLAGS = \\\n+lib/setup.sp lib/setup.s lib/setup.o: GIT-PREFIX\n+lib/setup.sp lib/setup.s lib/setup.o: EXTRA_CPPFLAGS = \\\n \t-DDEFAULT_GIT_TEMPLATE_DIR='\"$(template_dir_SQ)\"'\n \n-config.sp config.s config.o: GIT-PREFIX\n-config.sp config.s config.o: EXTRA_CPPFLAGS = \\\n+lib/config.sp lib/config.s lib/config.o: GIT-PREFIX\n+lib/config.sp lib/config.s lib/config.o: EXTRA_CPPFLAGS = \\\n \t-DETC_GITCONFIG='\"$(ETC_GITCONFIG_SQ)\"'\n \n-attr.sp attr.s attr.o: GIT-PREFIX\n-attr.sp attr.s attr.o: EXTRA_CPPFLAGS = \\\n+lib/attr.sp lib/attr.s lib/attr.o: GIT-PREFIX\n+lib/attr.sp lib/attr.s lib/attr.o: EXTRA_CPPFLAGS = \\\n \t-DETC_GITATTRIBUTES='\"$(ETC_GITATTRIBUTES_SQ)\"'\n \n-gettext.sp gettext.s gettext.o: GIT-PREFIX\n-gettext.sp gettext.s gettext.o: EXTRA_CPPFLAGS = \\\n+lib/gettext.sp lib/gettext.s lib/gettext.o: GIT-PREFIX\n+lib/gettext.sp lib/gettext.s lib/gettext.o: EXTRA_CPPFLAGS = \\\n \t-DGIT_LOCALE_PATH='\"$(localedir_relative_SQ)\"'\n \n-http-push.sp http.sp http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n+http-push.sp lib/http.sp lib/http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n \t-DCURL_DISABLE_TYPECHECK\n \n pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n \n ifdef NO_EXPAT\n-http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n+lib/http-walker.sp lib/http-walker.s lib/http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n endif\n \n ifdef NO_REGEX\n-compat/regex/regex.sp compat/regex/regex.o: EXTRA_CPPFLAGS = \\\n+lib/compat/regex/regex.sp lib/compat/regex/regex.o: EXTRA_CPPFLAGS = \\\n \t-DGAWK -DNO_MBSUPPORT\n endif\n \n ifdef USE_NED_ALLOCATOR\n-compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \\\n+lib/compat/nedmalloc/nedmalloc.sp lib/compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \\\n \t-DNDEBUG -DREPLACE_SYSTEM_ALLOCATOR\n-compat/nedmalloc/nedmalloc.sp: SP_EXTRA_FLAGS += -Wno-non-pointer-null\n+lib/compat/nedmalloc/nedmalloc.sp: SP_EXTRA_FLAGS += -Wno-non-pointer-null\n endif\n \n-headless-git.o: compat/win32/headless.c GIT-CFLAGS\n+headless-git.o: lib/compat/win32/headless.c GIT-CFLAGS\n \t$(QUIET_CC)$(CC) $(ALL_CFLAGS) $(COMPAT_CFLAGS) \\\n \t\t-fno-stack-protector -o $@ -c -Wall -Wwrite-strings $<\n \n@@ -3003,10 +3003,10 @@ git-imap-send$X: imap-send.o $(IMAP_SEND_BUILDDEPS) GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(IMAP_SEND_LDFLAGS) $(LIBS)\n \n-git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)\n+git-http-fetch$X: lib/http.o lib/http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(LIBS)\n-git-http-push$X: http.o http-push.o GIT-LDFLAGS $(GITLIBS)\n+git-http-push$X: lib/http.o http-push.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)\n \n@@ -3016,7 +3016,7 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY)\n \tln -s $< $@ 2>/dev/null || \\\n \tcp $< $@\n \n-$(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS)\n+$(REMOTE_CURL_PRIMARY): remote-curl.o lib/http.o lib/http-walker.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)\n \n@@ -3180,8 +3180,8 @@ LOCALIZED_C_CORE += builtin/clone.c\n LOCALIZED_C_CORE += builtin/index-pack.c\n LOCALIZED_C_CORE += builtin/push.c\n LOCALIZED_C_CORE += builtin/reset.c\n-LOCALIZED_C_CORE += remote.c\n-LOCALIZED_C_CORE += wt-status.c\n+LOCALIZED_C_CORE += lib/remote.c\n+LOCALIZED_C_CORE += lib/wt-status.c\n \n LOCALIZED_C_CORE_GEN_PO = $(LOCALIZED_C_CORE:%=.build/pot/po/%.po)\n \n@@ -3420,18 +3420,18 @@ $(SP_OBJ): %.sp: %.c %.o $(GENERATED_H)\n .PHONY: sparse\n sparse: $(SP_OBJ)\n \n-EXCEPT_HDRS := $(GENERATED_H) unicode-width.h compat/% xdiff/% $(UNIT_TEST_DIR)/clar/% $(UNIT_TEST_DIR)/clar/clar/%\n+EXCEPT_HDRS := $(GENERATED_H) lib/unicode-width.h lib/compat/% lib/xdiff/% $(UNIT_TEST_DIR)/clar/% $(UNIT_TEST_DIR)/clar/clar/%\n ifndef OPENSSL_SHA1\n-\tEXCEPT_HDRS += sha1/openssl.h\n+\tEXCEPT_HDRS += lib/sha1/openssl.h\n endif\n ifndef OPENSSL_SHA256\n-\tEXCEPT_HDRS += sha256/openssl.h\n+\tEXCEPT_HDRS += lib/sha256/openssl.h\n endif\n ifndef NETTLE_SHA256\n-\tEXCEPT_HDRS += sha256/nettle.h\n+\tEXCEPT_HDRS += lib/sha256/nettle.h\n endif\n ifndef GCRYPT_SHA256\n-\tEXCEPT_HDRS += sha256/gcrypt.h\n+\tEXCEPT_HDRS += lib/sha256/gcrypt.h\n endif\n CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))\n HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))\n@@ -3783,13 +3783,13 @@ GIT_ARCHIVE_EXTRA_FILES = \\\n \t--add-file=.dist-tmp-dir/git-gui/version\n ifdef DC_SHA1_SUBMODULE\n GIT_ARCHIVE_EXTRA_FILES += \\\n-\t--prefix=$(GIT_TARNAME)/sha1collisiondetection/ \\\n-\t--add-file=sha1collisiondetection/LICENSE.txt \\\n-\t--prefix=$(GIT_TARNAME)/sha1collisiondetection/lib/ \\\n-\t--add-file=sha1collisiondetection/lib/sha1.c \\\n-\t--add-file=sha1collisiondetection/lib/sha1.h \\\n-\t--add-file=sha1collisiondetection/lib/ubc_check.c \\\n-\t--add-file=sha1collisiondetection/lib/ubc_check.h\n+\t--prefix=$(GIT_TARNAME)/lib/sha1collisiondetection/ \\\n+\t--add-file=lib/sha1collisiondetection/LICENSE.txt \\\n+\t--prefix=$(GIT_TARNAME)/lib/sha1collisiondetection/lib/ \\\n+\t--add-file=lib/sha1collisiondetection/lib/sha1.c \\\n+\t--add-file=lib/sha1collisiondetection/lib/sha1.h \\\n+\t--add-file=lib/sha1collisiondetection/lib/ubc_check.c \\\n+\t--add-file=lib/sha1collisiondetection/lib/ubc_check.h\n endif\n dist: git-archive$(X) configure\n \t@$(RM) -r .dist-tmp-dir\n@@ -3919,7 +3919,7 @@ ifdef MSVC\n \t$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))\n \t$(RM) $(patsubst %.exe,%.iobj,$(TEST_PROGRAMS))\n \t$(RM) $(patsubst %.exe,%.ipdb,$(TEST_PROGRAMS))\n-\t$(RM) compat/vcbuild/MSVC-DEFS-GEN\n+\t$(RM) lib/compat/vcbuild/MSVC-DEFS-GEN\n endif\n \n .PHONY: all install profile-clean cocciclean clean strip\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 5feb582558..b9dd898e6d 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -21,17 +21,17 @@ ifdef MSVC\n \n \t# Generate and include makefile variables that point to the\n \t# currently installed set of MSVC command line tools.\n-compat/vcbuild/MSVC-DEFS-GEN: compat/vcbuild/find_vs_env.bat\n+lib/compat/vcbuild/MSVC-DEFS-GEN: lib/compat/vcbuild/find_vs_env.bat\n \t@\"$<\" | tr '\\\\' / >\"$@\"\n-include compat/vcbuild/MSVC-DEFS-GEN\n+include lib/compat/vcbuild/MSVC-DEFS-GEN\n \n \t# See if vcpkg and the vcpkg-build versions of the third-party\n \t# libraries that we use are installed.  We include the result\n \t# to get $(vcpkg_*) variables defined for the Makefile.\n ifeq (,$(SKIP_VCPKG))\n-compat/vcbuild/VCPKG-DEFS: compat/vcbuild/vcpkg_install.bat\n+lib/compat/vcbuild/VCPKG-DEFS: lib/compat/vcbuild/vcpkg_install.bat\n \t@\"$<\"\n-include compat/vcbuild/VCPKG-DEFS\n+include lib/compat/vcbuild/VCPKG-DEFS\n endif\n endif\n \n@@ -62,7 +62,7 @@ ifeq ($(uname_S),Linux)\n \tHAVE_SYSINFO = YesPlease\n \tPROCFS_EXECUTABLE_PATH = /proc/self/exe\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n-\tCOMPAT_OBJS += compat/linux/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/linux/procinfo.o\n \t# centos7/rhel7 provides gcc 4.8.5 and zlib 1.2.7.\n         ifneq ($(findstring .el7.,$(uname_R)),)\n \t\tBASIC_CFLAGS += -std=c99\n@@ -141,7 +141,7 @@ ifeq ($(uname_S),Darwin)\n \tNO_MEMMEM = YesPlease\n \tUSE_ST_TIMESPEC = YesPlease\n \tHAVE_DEV_TTY = YesPlease\n-\tCOMPAT_OBJS += compat/precompose_utf8.o\n+\tCOMPAT_OBJS += lib/compat/precompose_utf8.o\n \tBASIC_CFLAGS += -DPRECOMPOSE_UNICODE\n \tBASIC_CFLAGS += -DPROTECT_HFS_DEFAULT=1\n \tHAVE_BSD_SYSCTL = YesPlease\n@@ -150,7 +150,7 @@ ifeq ($(uname_S),Darwin)\n \tCSPRNG_METHOD = arc4random\n \tUSE_ENHANCED_BASIC_REGULAR_EXPRESSIONS = YesPlease\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n-\tCOMPAT_OBJS += compat/darwin/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/darwin/procinfo.o\n \n         ifeq ($(uname_M),arm64)\n \t\tHOMEBREW_PREFIX = /opt/homebrew\n@@ -275,7 +275,7 @@ ifeq ($(uname_O),Cygwin)\n \tUNRELIABLE_FSTAT = UnfortunatelyYes\n \tOBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo\n \tMMAP_PREVENTS_DELETE = UnfortunatelyYes\n-\tCOMPAT_OBJS += compat/win32/path-utils.o\n+\tCOMPAT_OBJS += lib/compat/win32/path-utils.o\n \tFREAD_READS_DIRECTORIES = UnfortunatelyYes\n endif\n ifeq ($(uname_S),FreeBSD)\n@@ -507,17 +507,17 @@ ifeq (/mingw64,$(subst 32,64,$(subst clangarm,mingw,$(prefix))))\n \tETC_GITATTRIBUTES = ../etc/gitattributes\n endif\n \n-\tCC = compat/vcbuild/scripts/clink.pl\n-\tAR = compat/vcbuild/scripts/lib.pl\n+\tCC = lib/compat/vcbuild/scripts/clink.pl\n+\tAR = lib/compat/vcbuild/scripts/lib.pl\n \tCFLAGS =\n-\tBASIC_CFLAGS = -nologo -I. -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n-\tCOMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n-\t\tcompat/win32/flush.o \\\n-\t\tcompat/win32/path-utils.o \\\n-\t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/trace2_win32_process_info.o \\\n-\t\tcompat/win32/dirent.o\n-\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n+\tBASIC_CFLAGS = -nologo -I. -Ilib/compat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n+\tCOMPAT_OBJS = lib/compat/msvc.o lib/compat/winansi.o \\\n+\t\tlib/compat/win32/flush.o \\\n+\t\tlib/compat/win32/path-utils.o \\\n+\t\tlib/compat/win32/pthread.o lib/compat/win32/syslog.o \\\n+\t\tlib/compat/win32/trace2_win32_process_info.o \\\n+\t\tlib/compat/win32/dirent.o\n+\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Ilib/compat -Ilib/compat/regex -Ilib/compat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n \tBASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -ENTRY:wmainCRTStartup -SUBSYSTEM:CONSOLE\n \t# invalidcontinue.obj allows Git's source code to close the same file\n \t# handle twice, or to access the osfhandle of an already-closed stdout\n@@ -557,7 +557,7 @@ endif\n \n \tEXTRA_PROGRAMS += headless-git$X\n \n-compat/msvc.o: compat/msvc.c compat/mingw.c GIT-CFLAGS\n+lib/compat/msvc.o: lib/compat/msvc.c lib/compat/mingw.c GIT-CFLAGS\n endif\n ifeq ($(uname_S),Interix)\n \tNO_INITGROUPS = YesPlease\n@@ -708,14 +708,14 @@ ifeq ($(uname_S),MINGW)\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n \tCSPRNG_METHOD = rtlgenrandom\n \tBASIC_LDFLAGS += -municode\n-\tCOMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32\n+\tCOMPAT_CFLAGS += -DNOGDI -Ilib/compat -Ilib/compat/win32\n \tCOMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n-\tCOMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n-\t\tcompat/win32/trace2_win32_process_info.o \\\n-\t\tcompat/win32/flush.o \\\n-\t\tcompat/win32/path-utils.o \\\n-\t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/dirent.o\n+\tCOMPAT_OBJS += lib/compat/mingw.o lib/compat/winansi.o \\\n+\t\tlib/compat/win32/trace2_win32_process_info.o \\\n+\t\tlib/compat/win32/flush.o \\\n+\t\tlib/compat/win32/path-utils.o \\\n+\t\tlib/compat/win32/pthread.o lib/compat/win32/syslog.o \\\n+\t\tlib/compat/win32/dirent.o\n \tBASIC_CFLAGS += -DWIN32\n \tEXTLIBS += -lws2_32\n \tGITLIBS += git.res\ndiff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt\nindex 81b4306e72..2cc7d41657 100644\n--- a/contrib/buildsystems/CMakeLists.txt\n+++ b/contrib/buildsystems/CMakeLists.txt\n@@ -62,10 +62,10 @@ if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS)\n endif()\n \n if(USE_VCPKG)\n-\tset(VCPKG_DIR \"${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg\")\n+\tset(VCPKG_DIR \"${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg\")\n \tif(NOT EXISTS ${VCPKG_DIR})\n \t\tmessage(\"Initializing vcpkg and building the Git's dependencies (this will take a while...)\")\n-\t\texecute_process(COMMAND ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg_install.bat)\n+\t\texecute_process(COMMAND ${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg_install.bat)\n \tendif()\n \tlist(APPEND CMAKE_PREFIX_PATH \"${VCPKG_DIR}/installed/x64-windows\")\n \n@@ -194,7 +194,7 @@ else()\n \tfind_program(MSGFMT_EXE msgfmt)\n \tif(NOT MSGFMT_EXE)\n \t\tif(USE_VCPKG)\n-\t\t\tset(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)\n+\t\t\tset(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)\n \t\tendif()\n \t\tif(NOT EXISTS ${MSGFMT_EXE})\n \t\t\tmessage(WARNING \"Text Translations won't be built\")\n@@ -212,13 +212,14 @@ endif()\n \n #default behaviour\n include_directories(${CMAKE_SOURCE_DIR})\n+include_directories(${CMAKE_SOURCE_DIR}/lib)\n add_compile_definitions(GIT_HOST_CPU=\"${CMAKE_SYSTEM_PROCESSOR}\")\n add_compile_definitions(SHA256_BLK INTERNAL_QSORT RUNTIME_PREFIX)\n add_compile_definitions(NO_OPENSSL SHA1_DC SHA1DC_NO_STANDARD_INCLUDES\n \t\t\tSHA1DC_INIT_SAFE_HASH_DEFAULT=0\n \t\t\tSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"git-compat-util.h\"\n \t\t\tSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"git-compat-util.h\" )\n-list(APPEND compat_SOURCES sha1dc_git.c sha1dc/sha1.c sha1dc/ubc_check.c block-sha1/sha1.c sha256/block/sha256.c compat/qsort_s.c)\n+list(APPEND compat_SOURCES lib/sha1dc_git.c lib/sha1dc/sha1.c lib/sha1dc/ubc_check.c lib/block-sha1/sha1.c lib/sha256/block/sha256.c lib/compat/qsort_s.c)\n \n \n add_compile_definitions(PAGER_ENV=\"LESS=FRX LV=-c\"\n@@ -248,44 +249,44 @@ endif()\n #Platform Specific\n if(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n \tif(CMAKE_C_COMPILER_ID STREQUAL \"MSVC\" OR CMAKE_C_COMPILER_ID STREQUAL \"Clang\")\n-\t\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/vcbuild/include)\n+\t\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/include)\n \t\tadd_compile_definitions(_CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)\n \tendif()\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/win32)\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/win32)\n \tadd_compile_definitions(HAVE_ALLOCA_H NO_POSIX_GOODIES NATIVE_CRLF NO_UNIX_SOCKETS WIN32\n \t\t\t\t_CONSOLE DETECT_MSYS_TTY STRIP_EXTENSION=\".exe\"  NO_SYMLINK_HEAD UNRELIABLE_FSTAT\n \t\t\t\tNOGDI OBJECT_CREATION_MODE=1 __USE_MINGW_ANSI_STDIO=0\n \t\t\t\tUSE_NED_ALLOCATOR OVERRIDE_STRDUP MMAP_PREVENTS_DELETE USE_WIN32_MMAP\n \t\t\t\tHAVE_WPGMPTR ENSURE_MSYSTEM_IS_SET HAVE_RTLGENRANDOM)\n \tlist(APPEND compat_SOURCES\n-\t\tcompat/mingw.c\n-\t\tcompat/winansi.c\n-\t\tcompat/win32/flush.c\n-\t\tcompat/win32/path-utils.c\n-\t\tcompat/win32/pthread.c\n-\t\tcompat/win32mmap.c\n-\t\tcompat/win32/syslog.c\n-\t\tcompat/win32/trace2_win32_process_info.c\n-\t\tcompat/win32/dirent.c\n-\t\tcompat/nedmalloc/nedmalloc.c\n-\t\tcompat/strdup.c)\n+\t\tlib/compat/mingw.c\n+\t\tlib/compat/winansi.c\n+\t\tlib/compat/win32/flush.c\n+\t\tlib/compat/win32/path-utils.c\n+\t\tlib/compat/win32/pthread.c\n+\t\tlib/compat/win32mmap.c\n+\t\tlib/compat/win32/syslog.c\n+\t\tlib/compat/win32/trace2_win32_process_info.c\n+\t\tlib/compat/win32/dirent.c\n+\t\tlib/compat/nedmalloc/nedmalloc.c\n+\t\tlib/compat/strdup.c)\n \tset(NO_UNIX_SOCKETS 1)\n \n elseif(CMAKE_SYSTEM_NAME STREQUAL \"Linux\")\n \tadd_compile_definitions(PROCFS_EXECUTABLE_PATH=\"/proc/self/exe\" HAVE_DEV_TTY )\n-\tlist(APPEND compat_SOURCES unix-socket.c unix-stream-server.c compat/linux/procinfo.c)\n+\tlist(APPEND compat_SOURCES lib/unix-socket.c lib/unix-stream-server.c lib/compat/linux/procinfo.c)\n elseif(CMAKE_SYSTEM_NAME STREQUAL \"Darwin\")\n-\tlist(APPEND compat_SOURCES compat/darwin/procinfo.c)\n+\tlist(APPEND compat_SOURCES lib/compat/darwin/procinfo.c)\n endif()\n \n if(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n-\tlist(APPEND compat_SOURCES compat/simple-ipc/ipc-shared.c compat/simple-ipc/ipc-win32.c)\n+\tlist(APPEND compat_SOURCES lib/compat/simple-ipc/ipc-shared.c lib/compat/simple-ipc/ipc-win32.c)\n \tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n \tset(SUPPORTS_SIMPLE_IPC 1)\n else()\n \t# Simple IPC requires both Unix sockets and pthreads on Unix-based systems.\n \tif(NOT NO_UNIX_SOCKETS AND NOT NO_PTHREADS)\n-\t\tlist(APPEND compat_SOURCES compat/simple-ipc/ipc-shared.c compat/simple-ipc/ipc-unix-socket.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/simple-ipc/ipc-shared.c lib/compat/simple-ipc/ipc-unix-socket.c)\n \t\tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n \t\tset(SUPPORTS_SIMPLE_IPC 1)\n \tendif()\n@@ -294,22 +295,22 @@ endif()\n if(SUPPORTS_SIMPLE_IPC)\n \tif(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n \t\tadd_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-win32.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-win32.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-win32.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-win32.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-win32.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-win32.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-win32.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-win32.c)\n \n \t\tadd_compile_definitions(HAVE_FSMONITOR_OS_SETTINGS)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-win32.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-win32.c)\n \telseif(CMAKE_SYSTEM_NAME STREQUAL \"Darwin\")\n \t\tadd_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-darwin.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-darwin.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-darwin.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-darwin.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-darwin.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-darwin.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-darwin.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-darwin.c)\n \n \t\tadd_compile_definitions(HAVE_FSMONITOR_OS_SETTINGS)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-darwin.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-darwin.c)\n \tendif()\n endif()\n \n@@ -319,7 +320,7 @@ set(EXE_EXTENSION ${CMAKE_EXECUTABLE_SUFFIX})\n check_include_file(libgen.h HAVE_LIBGEN_H)\n if(NOT HAVE_LIBGEN_H)\n \tadd_compile_definitions(NO_LIBGEN_H)\n-\tlist(APPEND compat_SOURCES compat/basename.c)\n+\tlist(APPEND compat_SOURCES lib/compat/basename.c)\n endif()\n \n check_include_file(sys/sysinfo.h HAVE_SYSINFO)\n@@ -392,42 +393,42 @@ foreach(f ${function_checks})\n endforeach()\n \n if(NOT HAVE_POLL_H OR NOT HAVE_SYS_POLL_H OR NOT HAVE_POLL)\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/poll)\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/poll)\n \tadd_compile_definitions(NO_POLL)\n-\tlist(APPEND compat_SOURCES compat/poll/poll.c)\n+\tlist(APPEND compat_SOURCES lib/compat/poll/poll.c)\n endif()\n \n if(NOT HAVE_STRCASESTR)\n-\tlist(APPEND compat_SOURCES compat/strcasestr.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strcasestr.c)\n endif()\n \n if(NOT HAVE_STRLCPY)\n-\tlist(APPEND compat_SOURCES compat/strlcpy.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strlcpy.c)\n endif()\n \n if(NOT HAVE_STRTOUMAX)\n-\tlist(APPEND compat_SOURCES compat/strtoumax.c compat/strtoimax.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strtoumax.c lib/compat/strtoimax.c)\n endif()\n \n if(NOT HAVE_SETENV)\n-\tlist(APPEND compat_SOURCES compat/setenv.c)\n+\tlist(APPEND compat_SOURCES lib/compat/setenv.c)\n endif()\n \n if(NOT HAVE_PREAD)\n-\tlist(APPEND compat_SOURCES compat/pread.c)\n+\tlist(APPEND compat_SOURCES lib/compat/pread.c)\n endif()\n \n if(NOT HAVE_MEMMEM)\n-\tlist(APPEND compat_SOURCES compat/memmem.c)\n+\tlist(APPEND compat_SOURCES lib/compat/memmem.c)\n endif()\n \n if(NOT WIN32)\n \tif(NOT HAVE_UNSETENV)\n-\t\tlist(APPEND compat_SOURCES compat/unsetenv.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/unsetenv.c)\n \tendif()\n \n \tif(NOT HAVE_HSTRERROR)\n-\t\tlist(APPEND compat_SOURCES compat/hstrerror.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/hstrerror.c)\n \tendif()\n endif()\n \n@@ -484,7 +485,7 @@ int main(void)\n SNPRINTF_OK)\n if(NOT SNPRINTF_OK)\n \tadd_compile_definitions(SNPRINTF_RETURNS_BOGUS)\n-\tlist(APPEND compat_SOURCES compat/snprintf.c)\n+\tlist(APPEND compat_SOURCES lib/compat/snprintf.c)\n endif()\n \n check_c_source_runs(\"\n@@ -499,7 +500,7 @@ int main(void)\n FREAD_READS_DIRECTORIES_NO)\n if(NOT FREAD_READS_DIRECTORIES_NO)\n \tadd_compile_definitions(FREAD_READS_DIRECTORIES)\n-\tlist(APPEND compat_SOURCES compat/fopen.c)\n+\tlist(APPEND compat_SOURCES lib/compat/fopen.c)\n endif()\n \n check_c_source_compiles(\"\n@@ -514,8 +515,8 @@ int main(void)\n }\"\n HAVE_REGEX)\n if(NOT HAVE_REGEX)\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/regex)\n-\tlist(APPEND compat_SOURCES compat/regex/regex.c )\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/regex)\n+\tlist(APPEND compat_SOURCES lib/compat/regex/regex.c )\n \tadd_compile_definitions(NO_REGEX NO_MBSUPPORT GAWK)\n endif()\n \n@@ -668,10 +669,10 @@ list(TRANSFORM compat_SOURCES PREPEND \"${CMAKE_SOURCE_DIR}/\")\n add_custom_command(OUTPUT \"${CMAKE_BINARY_DIR}/version-def.h\"\n \tCOMMAND \"${SH_EXE}\" \"${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN\"\n \t\t\"${CMAKE_SOURCE_DIR}\"\n-\t\t\"${CMAKE_SOURCE_DIR}/version-def.h.in\"\n+\t\t\"${CMAKE_SOURCE_DIR}/lib/version-def.h.in\"\n \t\t\"${CMAKE_BINARY_DIR}/version-def.h\"\n \tDEPENDS \"${SH_EXE}\" \"${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN\"\n-\t\t\"${CMAKE_SOURCE_DIR}/version-def.h.in\"\n+\t\t\"${CMAKE_SOURCE_DIR}/lib/version-def.h.in\"\n \tVERBATIM)\n list(APPEND libgit_SOURCES \"${CMAKE_BINARY_DIR}/version-def.h\")\n \n@@ -730,7 +731,7 @@ if(WIN32)\n \t\tmessage(FATAL_ERROR \"Unhandled compiler: ${CMAKE_C_COMPILER_ID}\")\n \tendif()\n \n-\tadd_executable(headless-git ${CMAKE_SOURCE_DIR}/compat/win32/headless.c)\n+\tadd_executable(headless-git ${CMAKE_SOURCE_DIR}/lib/compat/win32/headless.c)\n \tif(CMAKE_C_COMPILER_ID STREQUAL \"GNU\" OR CMAKE_C_COMPILER_ID STREQUAL \"Clang\")\n \t\ttarget_link_options(headless-git PUBLIC -municode -Wl,-subsystem,windows)\n \telseif(CMAKE_C_COMPILER_ID STREQUAL \"MSVC\")\n@@ -765,15 +766,15 @@ add_executable(scalar ${CMAKE_SOURCE_DIR}/scalar.c)\n target_link_libraries(scalar common-main)\n \n if(CURL_FOUND)\n-\tadd_library(http_obj OBJECT ${CMAKE_SOURCE_DIR}/http.c)\n+\tadd_library(http_obj OBJECT ${CMAKE_SOURCE_DIR}/lib/http.c)\n \n \tadd_executable(git-imap-send ${CMAKE_SOURCE_DIR}/imap-send.c)\n \ttarget_link_libraries(git-imap-send http_obj common-main ${CURL_LIBRARIES})\n \n-\tadd_executable(git-http-fetch ${CMAKE_SOURCE_DIR}/http-walker.c ${CMAKE_SOURCE_DIR}/http-fetch.c)\n+\tadd_executable(git-http-fetch ${CMAKE_SOURCE_DIR}/lib/http-walker.c ${CMAKE_SOURCE_DIR}/http-fetch.c)\n \ttarget_link_libraries(git-http-fetch http_obj common-main ${CURL_LIBRARIES})\n \n-\tadd_executable(git-remote-http ${CMAKE_SOURCE_DIR}/http-walker.c ${CMAKE_SOURCE_DIR}/remote-curl.c)\n+\tadd_executable(git-remote-http ${CMAKE_SOURCE_DIR}/lib/http-walker.c ${CMAKE_SOURCE_DIR}/remote-curl.c)\n \ttarget_link_libraries(git-remote-http http_obj common-main ${CURL_LIBRARIES} )\n \n \tif(EXPAT_FOUND)\n@@ -1199,7 +1200,7 @@ string(REPLACE \"@USE_LIBPCRE2@\" \"\" git_build_options \"${git_build_options}\")\n string(REPLACE \"@WITH_BREAKING_CHANGES@\" \"\" git_build_options \"${git_build_options}\")\n string(REPLACE \"@X@\" \"${EXE_EXTENSION}\" git_build_options \"${git_build_options}\")\n if(USE_VCPKG)\n-\tstring(APPEND git_build_options \"PATH=\\\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\\\"\\n\")\n+\tstring(APPEND git_build_options \"PATH=\\\"$PATH:$TEST_DIRECTORY/../lib/compat/vcbuild/vcpkg/installed/x64-windows/bin\\\"\\n\")\n endif()\n file(WRITE ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS ${git_build_options})\n \ndiff --git a/git.rc.in b/git.rc.in\nindex e69444eef3..87cdefd50b 100644\n--- a/git.rc.in\n+++ b/git.rc.in\n@@ -21,4 +21,4 @@ BEGIN\n   END\n END\n \n-1 RT_MANIFEST \"compat/win32/git.manifest\"\n+1 RT_MANIFEST \"lib/compat/win32/git.manifest\"\ndiff --git a/abspath.c b/lib/abspath.c\nsimilarity index 100%\nrename from abspath.c\nrename to lib/abspath.c\ndiff --git a/abspath.h b/lib/abspath.h\nsimilarity index 100%\nrename from abspath.h\nrename to lib/abspath.h\ndiff --git a/add-interactive.c b/lib/add-interactive.c\nsimilarity index 100%\nrename from add-interactive.c\nrename to lib/add-interactive.c\ndiff --git a/add-interactive.h b/lib/add-interactive.h\nsimilarity index 100%\nrename from add-interactive.h\nrename to lib/add-interactive.h\ndiff --git a/add-patch.c b/lib/add-patch.c\nsimilarity index 100%\nrename from add-patch.c\nrename to lib/add-patch.c\ndiff --git a/add-patch.h b/lib/add-patch.h\nsimilarity index 100%\nrename from add-patch.h\nrename to lib/add-patch.h\ndiff --git a/advice.c b/lib/advice.c\nsimilarity index 100%\nrename from advice.c\nrename to lib/advice.c\ndiff --git a/advice.h b/lib/advice.h\nsimilarity index 100%\nrename from advice.h\nrename to lib/advice.h\ndiff --git a/alias.c b/lib/alias.c\nsimilarity index 100%\nrename from alias.c\nrename to lib/alias.c\ndiff --git a/alias.h b/lib/alias.h\nsimilarity index 100%\nrename from alias.h\nrename to lib/alias.h\ndiff --git a/alloc.c b/lib/alloc.c\nsimilarity index 100%\nrename from alloc.c\nrename to lib/alloc.c\ndiff --git a/alloc.h b/lib/alloc.h\nsimilarity index 100%\nrename from alloc.h\nrename to lib/alloc.h\ndiff --git a/apply.c b/lib/apply.c\nsimilarity index 100%\nrename from apply.c\nrename to lib/apply.c\ndiff --git a/apply.h b/lib/apply.h\nsimilarity index 100%\nrename from apply.h\nrename to lib/apply.h\ndiff --git a/archive-tar.c b/lib/archive-tar.c\nsimilarity index 100%\nrename from archive-tar.c\nrename to lib/archive-tar.c\ndiff --git a/archive-zip.c b/lib/archive-zip.c\nsimilarity index 100%\nrename from archive-zip.c\nrename to lib/archive-zip.c\ndiff --git a/archive.c b/lib/archive.c\nsimilarity index 100%\nrename from archive.c\nrename to lib/archive.c\ndiff --git a/archive.h b/lib/archive.h\nsimilarity index 100%\nrename from archive.h\nrename to lib/archive.h\ndiff --git a/attr.c b/lib/attr.c\nsimilarity index 100%\nrename from attr.c\nrename to lib/attr.c\ndiff --git a/attr.h b/lib/attr.h\nsimilarity index 100%\nrename from attr.h\nrename to lib/attr.h\ndiff --git a/banned.h b/lib/banned.h\nsimilarity index 100%\nrename from banned.h\nrename to lib/banned.h\ndiff --git a/base85.c b/lib/base85.c\nsimilarity index 100%\nrename from base85.c\nrename to lib/base85.c\ndiff --git a/base85.h b/lib/base85.h\nsimilarity index 100%\nrename from base85.h\nrename to lib/base85.h\ndiff --git a/bisect.c b/lib/bisect.c\nsimilarity index 100%\nrename from bisect.c\nrename to lib/bisect.c\ndiff --git a/bisect.h b/lib/bisect.h\nsimilarity index 100%\nrename from bisect.h\nrename to lib/bisect.h\ndiff --git a/blame.c b/lib/blame.c\nsimilarity index 100%\nrename from blame.c\nrename to lib/blame.c\ndiff --git a/blame.h b/lib/blame.h\nsimilarity index 100%\nrename from blame.h\nrename to lib/blame.h\ndiff --git a/blob.c b/lib/blob.c\nsimilarity index 100%\nrename from blob.c\nrename to lib/blob.c\ndiff --git a/blob.h b/lib/blob.h\nsimilarity index 100%\nrename from blob.h\nrename to lib/blob.h\ndiff --git a/block-sha1/sha1.c b/lib/block-sha1/sha1.c\nsimilarity index 100%\nrename from block-sha1/sha1.c\nrename to lib/block-sha1/sha1.c\ndiff --git a/block-sha1/sha1.h b/lib/block-sha1/sha1.h\nsimilarity index 100%\nrename from block-sha1/sha1.h\nrename to lib/block-sha1/sha1.h\ndiff --git a/bloom.c b/lib/bloom.c\nsimilarity index 100%\nrename from bloom.c\nrename to lib/bloom.c\ndiff --git a/bloom.h b/lib/bloom.h\nsimilarity index 100%\nrename from bloom.h\nrename to lib/bloom.h\ndiff --git a/branch.c b/lib/branch.c\nsimilarity index 100%\nrename from branch.c\nrename to lib/branch.c\ndiff --git a/branch.h b/lib/branch.h\nsimilarity index 100%\nrename from branch.h\nrename to lib/branch.h\ndiff --git a/builtin.h b/lib/builtin.h\nsimilarity index 100%\nrename from builtin.h\nrename to lib/builtin.h\ndiff --git a/bundle-uri.c b/lib/bundle-uri.c\nsimilarity index 100%\nrename from bundle-uri.c\nrename to lib/bundle-uri.c\ndiff --git a/bundle-uri.h b/lib/bundle-uri.h\nsimilarity index 100%\nrename from bundle-uri.h\nrename to lib/bundle-uri.h\ndiff --git a/bundle.c b/lib/bundle.c\nsimilarity index 100%\nrename from bundle.c\nrename to lib/bundle.c\ndiff --git a/bundle.h b/lib/bundle.h\nsimilarity index 100%\nrename from bundle.h\nrename to lib/bundle.h\ndiff --git a/cache-tree.c b/lib/cache-tree.c\nsimilarity index 100%\nrename from cache-tree.c\nrename to lib/cache-tree.c\ndiff --git a/cache-tree.h b/lib/cache-tree.h\nsimilarity index 100%\nrename from cache-tree.h\nrename to lib/cache-tree.h\ndiff --git a/cbtree.c b/lib/cbtree.c\nsimilarity index 100%\nrename from cbtree.c\nrename to lib/cbtree.c\ndiff --git a/cbtree.h b/lib/cbtree.h\nsimilarity index 100%\nrename from cbtree.h\nrename to lib/cbtree.h\ndiff --git a/chdir-notify.c b/lib/chdir-notify.c\nsimilarity index 100%\nrename from chdir-notify.c\nrename to lib/chdir-notify.c\ndiff --git a/chdir-notify.h b/lib/chdir-notify.h\nsimilarity index 100%\nrename from chdir-notify.h\nrename to lib/chdir-notify.h\ndiff --git a/checkout.c b/lib/checkout.c\nsimilarity index 100%\nrename from checkout.c\nrename to lib/checkout.c\ndiff --git a/checkout.h b/lib/checkout.h\nsimilarity index 100%\nrename from checkout.h\nrename to lib/checkout.h\ndiff --git a/chunk-format.c b/lib/chunk-format.c\nsimilarity index 100%\nrename from chunk-format.c\nrename to lib/chunk-format.c\ndiff --git a/chunk-format.h b/lib/chunk-format.h\nsimilarity index 100%\nrename from chunk-format.h\nrename to lib/chunk-format.h\ndiff --git a/color.c b/lib/color.c\nsimilarity index 100%\nrename from color.c\nrename to lib/color.c\ndiff --git a/color.h b/lib/color.h\nsimilarity index 100%\nrename from color.h\nrename to lib/color.h\ndiff --git a/column.c b/lib/column.c\nsimilarity index 100%\nrename from column.c\nrename to lib/column.c\ndiff --git a/column.h b/lib/column.h\nsimilarity index 100%\nrename from column.h\nrename to lib/column.h\ndiff --git a/combine-diff.c b/lib/combine-diff.c\nsimilarity index 100%\nrename from combine-diff.c\nrename to lib/combine-diff.c\ndiff --git a/commit-graph.c b/lib/commit-graph.c\nsimilarity index 100%\nrename from commit-graph.c\nrename to lib/commit-graph.c\ndiff --git a/commit-graph.h b/lib/commit-graph.h\nsimilarity index 100%\nrename from commit-graph.h\nrename to lib/commit-graph.h\ndiff --git a/commit-reach.c b/lib/commit-reach.c\nsimilarity index 100%\nrename from commit-reach.c\nrename to lib/commit-reach.c\ndiff --git a/commit-reach.h b/lib/commit-reach.h\nsimilarity index 100%\nrename from commit-reach.h\nrename to lib/commit-reach.h\ndiff --git a/commit-slab-decl.h b/lib/commit-slab-decl.h\nsimilarity index 100%\nrename from commit-slab-decl.h\nrename to lib/commit-slab-decl.h\ndiff --git a/commit-slab-impl.h b/lib/commit-slab-impl.h\nsimilarity index 100%\nrename from commit-slab-impl.h\nrename to lib/commit-slab-impl.h\ndiff --git a/commit-slab.h b/lib/commit-slab.h\nsimilarity index 100%\nrename from commit-slab.h\nrename to lib/commit-slab.h\ndiff --git a/commit.c b/lib/commit.c\nsimilarity index 100%\nrename from commit.c\nrename to lib/commit.c\ndiff --git a/commit.h b/lib/commit.h\nsimilarity index 100%\nrename from commit.h\nrename to lib/commit.h\ndiff --git a/common-exit.c b/lib/common-exit.c\nsimilarity index 100%\nrename from common-exit.c\nrename to lib/common-exit.c\ndiff --git a/common-init.c b/lib/common-init.c\nsimilarity index 100%\nrename from common-init.c\nrename to lib/common-init.c\ndiff --git a/common-init.h b/lib/common-init.h\nsimilarity index 100%\nrename from common-init.h\nrename to lib/common-init.h\ndiff --git a/compat/.gitattributes b/lib/compat/.gitattributes\nsimilarity index 100%\nrename from compat/.gitattributes\nrename to lib/compat/.gitattributes\ndiff --git a/compat/access.c b/lib/compat/access.c\nsimilarity index 100%\nrename from compat/access.c\nrename to lib/compat/access.c\ndiff --git a/compat/apple-common-crypto.h b/lib/compat/apple-common-crypto.h\nsimilarity index 100%\nrename from compat/apple-common-crypto.h\nrename to lib/compat/apple-common-crypto.h\ndiff --git a/compat/basename.c b/lib/compat/basename.c\nsimilarity index 100%\nrename from compat/basename.c\nrename to lib/compat/basename.c\ndiff --git a/compat/bswap.h b/lib/compat/bswap.h\nsimilarity index 100%\nrename from compat/bswap.h\nrename to lib/compat/bswap.h\ndiff --git a/compat/compiler.h b/lib/compat/compiler.h\nsimilarity index 100%\nrename from compat/compiler.h\nrename to lib/compat/compiler.h\ndiff --git a/compat/darwin/procinfo.c b/lib/compat/darwin/procinfo.c\nsimilarity index 100%\nrename from compat/darwin/procinfo.c\nrename to lib/compat/darwin/procinfo.c\ndiff --git a/compat/disk.h b/lib/compat/disk.h\nsimilarity index 100%\nrename from compat/disk.h\nrename to lib/compat/disk.h\ndiff --git a/compat/fileno.c b/lib/compat/fileno.c\nsimilarity index 100%\nrename from compat/fileno.c\nrename to lib/compat/fileno.c\ndiff --git a/compat/fopen.c b/lib/compat/fopen.c\nsimilarity index 100%\nrename from compat/fopen.c\nrename to lib/compat/fopen.c\ndiff --git a/compat/fsmonitor/fsm-darwin-gcc.h b/lib/compat/fsmonitor/fsm-darwin-gcc.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-darwin-gcc.h\nrename to lib/compat/fsmonitor/fsm-darwin-gcc.h\ndiff --git a/compat/fsmonitor/fsm-health-darwin.c b/lib/compat/fsmonitor/fsm-health-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-darwin.c\nrename to lib/compat/fsmonitor/fsm-health-darwin.c\ndiff --git a/compat/fsmonitor/fsm-health-win32.c b/lib/compat/fsmonitor/fsm-health-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-win32.c\nrename to lib/compat/fsmonitor/fsm-health-win32.c\ndiff --git a/compat/fsmonitor/fsm-health.h b/lib/compat/fsmonitor/fsm-health.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health.h\nrename to lib/compat/fsmonitor/fsm-health.h\ndiff --git a/compat/fsmonitor/fsm-ipc-darwin.c b/lib/compat/fsmonitor/fsm-ipc-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-ipc-darwin.c\nrename to lib/compat/fsmonitor/fsm-ipc-darwin.c\ndiff --git a/compat/fsmonitor/fsm-ipc-win32.c b/lib/compat/fsmonitor/fsm-ipc-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-ipc-win32.c\nrename to lib/compat/fsmonitor/fsm-ipc-win32.c\ndiff --git a/compat/fsmonitor/fsm-listen-darwin.c b/lib/compat/fsmonitor/fsm-listen-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-darwin.c\nrename to lib/compat/fsmonitor/fsm-listen-darwin.c\ndiff --git a/compat/fsmonitor/fsm-listen-win32.c b/lib/compat/fsmonitor/fsm-listen-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-win32.c\nrename to lib/compat/fsmonitor/fsm-listen-win32.c\ndiff --git a/compat/fsmonitor/fsm-listen.h b/lib/compat/fsmonitor/fsm-listen.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen.h\nrename to lib/compat/fsmonitor/fsm-listen.h\ndiff --git a/compat/fsmonitor/fsm-path-utils-darwin.c b/lib/compat/fsmonitor/fsm-path-utils-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-darwin.c\nrename to lib/compat/fsmonitor/fsm-path-utils-darwin.c\ndiff --git a/compat/fsmonitor/fsm-path-utils-win32.c b/lib/compat/fsmonitor/fsm-path-utils-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-win32.c\nrename to lib/compat/fsmonitor/fsm-path-utils-win32.c\ndiff --git a/compat/fsmonitor/fsm-settings-darwin.c b/lib/compat/fsmonitor/fsm-settings-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-settings-darwin.c\nrename to lib/compat/fsmonitor/fsm-settings-darwin.c\ndiff --git a/compat/fsmonitor/fsm-settings-win32.c b/lib/compat/fsmonitor/fsm-settings-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-settings-win32.c\nrename to lib/compat/fsmonitor/fsm-settings-win32.c\ndiff --git a/compat/hstrerror.c b/lib/compat/hstrerror.c\nsimilarity index 100%\nrename from compat/hstrerror.c\nrename to lib/compat/hstrerror.c\ndiff --git a/compat/inet_ntop.c b/lib/compat/inet_ntop.c\nsimilarity index 100%\nrename from compat/inet_ntop.c\nrename to lib/compat/inet_ntop.c\ndiff --git a/compat/inet_pton.c b/lib/compat/inet_pton.c\nsimilarity index 100%\nrename from compat/inet_pton.c\nrename to lib/compat/inet_pton.c\ndiff --git a/compat/linux/procinfo.c b/lib/compat/linux/procinfo.c\nsimilarity index 100%\nrename from compat/linux/procinfo.c\nrename to lib/compat/linux/procinfo.c\ndiff --git a/compat/memmem.c b/lib/compat/memmem.c\nsimilarity index 100%\nrename from compat/memmem.c\nrename to lib/compat/memmem.c\ndiff --git a/compat/mingw-posix.h b/lib/compat/mingw-posix.h\nsimilarity index 100%\nrename from compat/mingw-posix.h\nrename to lib/compat/mingw-posix.h\ndiff --git a/compat/mingw.c b/lib/compat/mingw.c\nsimilarity index 100%\nrename from compat/mingw.c\nrename to lib/compat/mingw.c\ndiff --git a/compat/mingw.h b/lib/compat/mingw.h\nsimilarity index 100%\nrename from compat/mingw.h\nrename to lib/compat/mingw.h\ndiff --git a/compat/mkdir.c b/lib/compat/mkdir.c\nsimilarity index 100%\nrename from compat/mkdir.c\nrename to lib/compat/mkdir.c\ndiff --git a/compat/mmap.c b/lib/compat/mmap.c\nsimilarity index 100%\nrename from compat/mmap.c\nrename to lib/compat/mmap.c\ndiff --git a/compat/msvc-posix.h b/lib/compat/msvc-posix.h\nsimilarity index 100%\nrename from compat/msvc-posix.h\nrename to lib/compat/msvc-posix.h\ndiff --git a/compat/msvc.c b/lib/compat/msvc.c\nsimilarity index 100%\nrename from compat/msvc.c\nrename to lib/compat/msvc.c\ndiff --git a/compat/msvc.h b/lib/compat/msvc.h\nsimilarity index 100%\nrename from compat/msvc.h\nrename to lib/compat/msvc.h\ndiff --git a/compat/nedmalloc/License.txt b/lib/compat/nedmalloc/License.txt\nsimilarity index 100%\nrename from compat/nedmalloc/License.txt\nrename to lib/compat/nedmalloc/License.txt\ndiff --git a/compat/nedmalloc/Readme.txt b/lib/compat/nedmalloc/Readme.txt\nsimilarity index 100%\nrename from compat/nedmalloc/Readme.txt\nrename to lib/compat/nedmalloc/Readme.txt\ndiff --git a/compat/nedmalloc/malloc.c.h b/lib/compat/nedmalloc/malloc.c.h\nsimilarity index 100%\nrename from compat/nedmalloc/malloc.c.h\nrename to lib/compat/nedmalloc/malloc.c.h\ndiff --git a/compat/nedmalloc/nedmalloc.c b/lib/compat/nedmalloc/nedmalloc.c\nsimilarity index 100%\nrename from compat/nedmalloc/nedmalloc.c\nrename to lib/compat/nedmalloc/nedmalloc.c\ndiff --git a/compat/nedmalloc/nedmalloc.h b/lib/compat/nedmalloc/nedmalloc.h\nsimilarity index 100%\nrename from compat/nedmalloc/nedmalloc.h\nrename to lib/compat/nedmalloc/nedmalloc.h\ndiff --git a/compat/nonblock.c b/lib/compat/nonblock.c\nsimilarity index 100%\nrename from compat/nonblock.c\nrename to lib/compat/nonblock.c\ndiff --git a/compat/nonblock.h b/lib/compat/nonblock.h\nsimilarity index 100%\nrename from compat/nonblock.h\nrename to lib/compat/nonblock.h\ndiff --git a/compat/obstack.c b/lib/compat/obstack.c\nsimilarity index 100%\nrename from compat/obstack.c\nrename to lib/compat/obstack.c\ndiff --git a/compat/obstack.h b/lib/compat/obstack.h\nsimilarity index 100%\nrename from compat/obstack.h\nrename to lib/compat/obstack.h\ndiff --git a/compat/open.c b/lib/compat/open.c\nsimilarity index 100%\nrename from compat/open.c\nrename to lib/compat/open.c\ndiff --git a/compat/poll/poll.c b/lib/compat/poll/poll.c\nsimilarity index 100%\nrename from compat/poll/poll.c\nrename to lib/compat/poll/poll.c\ndiff --git a/compat/poll/poll.h b/lib/compat/poll/poll.h\nsimilarity index 100%\nrename from compat/poll/poll.h\nrename to lib/compat/poll/poll.h\ndiff --git a/compat/posix.h b/lib/compat/posix.h\nsimilarity index 100%\nrename from compat/posix.h\nrename to lib/compat/posix.h\ndiff --git a/compat/pread.c b/lib/compat/pread.c\nsimilarity index 100%\nrename from compat/pread.c\nrename to lib/compat/pread.c\ndiff --git a/compat/precompose_utf8.c b/lib/compat/precompose_utf8.c\nsimilarity index 100%\nrename from compat/precompose_utf8.c\nrename to lib/compat/precompose_utf8.c\ndiff --git a/compat/precompose_utf8.h b/lib/compat/precompose_utf8.h\nsimilarity index 100%\nrename from compat/precompose_utf8.h\nrename to lib/compat/precompose_utf8.h\ndiff --git a/compat/qsort_s.c b/lib/compat/qsort_s.c\nsimilarity index 100%\nrename from compat/qsort_s.c\nrename to lib/compat/qsort_s.c\ndiff --git a/compat/regcomp_enhanced.c b/lib/compat/regcomp_enhanced.c\nsimilarity index 100%\nrename from compat/regcomp_enhanced.c\nrename to lib/compat/regcomp_enhanced.c\ndiff --git a/compat/regex/regcomp.c b/lib/compat/regex/regcomp.c\nsimilarity index 100%\nrename from compat/regex/regcomp.c\nrename to lib/compat/regex/regcomp.c\ndiff --git a/compat/regex/regex.c b/lib/compat/regex/regex.c\nsimilarity index 100%\nrename from compat/regex/regex.c\nrename to lib/compat/regex/regex.c\ndiff --git a/compat/regex/regex.h b/lib/compat/regex/regex.h\nsimilarity index 100%\nrename from compat/regex/regex.h\nrename to lib/compat/regex/regex.h\ndiff --git a/compat/regex/regex_internal.c b/lib/compat/regex/regex_internal.c\nsimilarity index 100%\nrename from compat/regex/regex_internal.c\nrename to lib/compat/regex/regex_internal.c\ndiff --git a/compat/regex/regex_internal.h b/lib/compat/regex/regex_internal.h\nsimilarity index 100%\nrename from compat/regex/regex_internal.h\nrename to lib/compat/regex/regex_internal.h\ndiff --git a/compat/regex/regexec.c b/lib/compat/regex/regexec.c\nsimilarity index 100%\nrename from compat/regex/regexec.c\nrename to lib/compat/regex/regexec.c\ndiff --git a/compat/setenv.c b/lib/compat/setenv.c\nsimilarity index 100%\nrename from compat/setenv.c\nrename to lib/compat/setenv.c\ndiff --git a/compat/sha1-chunked.c b/lib/compat/sha1-chunked.c\nsimilarity index 100%\nrename from compat/sha1-chunked.c\nrename to lib/compat/sha1-chunked.c\ndiff --git a/compat/sha1-chunked.h b/lib/compat/sha1-chunked.h\nsimilarity index 100%\nrename from compat/sha1-chunked.h\nrename to lib/compat/sha1-chunked.h\ndiff --git a/compat/simple-ipc/ipc-shared.c b/lib/compat/simple-ipc/ipc-shared.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-shared.c\nrename to lib/compat/simple-ipc/ipc-shared.c\ndiff --git a/compat/simple-ipc/ipc-unix-socket.c b/lib/compat/simple-ipc/ipc-unix-socket.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-unix-socket.c\nrename to lib/compat/simple-ipc/ipc-unix-socket.c\ndiff --git a/compat/simple-ipc/ipc-win32.c b/lib/compat/simple-ipc/ipc-win32.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-win32.c\nrename to lib/compat/simple-ipc/ipc-win32.c\ndiff --git a/compat/snprintf.c b/lib/compat/snprintf.c\nsimilarity index 100%\nrename from compat/snprintf.c\nrename to lib/compat/snprintf.c\ndiff --git a/compat/stat.c b/lib/compat/stat.c\nsimilarity index 100%\nrename from compat/stat.c\nrename to lib/compat/stat.c\ndiff --git a/compat/strcasestr.c b/lib/compat/strcasestr.c\nsimilarity index 100%\nrename from compat/strcasestr.c\nrename to lib/compat/strcasestr.c\ndiff --git a/compat/strdup.c b/lib/compat/strdup.c\nsimilarity index 100%\nrename from compat/strdup.c\nrename to lib/compat/strdup.c\ndiff --git a/compat/strlcpy.c b/lib/compat/strlcpy.c\nsimilarity index 100%\nrename from compat/strlcpy.c\nrename to lib/compat/strlcpy.c\ndiff --git a/compat/strtoimax.c b/lib/compat/strtoimax.c\nsimilarity index 100%\nrename from compat/strtoimax.c\nrename to lib/compat/strtoimax.c\ndiff --git a/compat/strtoumax.c b/lib/compat/strtoumax.c\nsimilarity index 100%\nrename from compat/strtoumax.c\nrename to lib/compat/strtoumax.c\ndiff --git a/compat/stub/procinfo.c b/lib/compat/stub/procinfo.c\nsimilarity index 100%\nrename from compat/stub/procinfo.c\nrename to lib/compat/stub/procinfo.c\ndiff --git a/compat/terminal.c b/lib/compat/terminal.c\nsimilarity index 100%\nrename from compat/terminal.c\nrename to lib/compat/terminal.c\ndiff --git a/compat/terminal.h b/lib/compat/terminal.h\nsimilarity index 100%\nrename from compat/terminal.h\nrename to lib/compat/terminal.h\ndiff --git a/compat/unsetenv.c b/lib/compat/unsetenv.c\nsimilarity index 100%\nrename from compat/unsetenv.c\nrename to lib/compat/unsetenv.c\ndiff --git a/compat/vcbuild/.gitignore b/lib/compat/vcbuild/.gitignore\nsimilarity index 100%\nrename from compat/vcbuild/.gitignore\nrename to lib/compat/vcbuild/.gitignore\ndiff --git a/compat/vcbuild/README b/lib/compat/vcbuild/README\nsimilarity index 94%\nrename from compat/vcbuild/README\nrename to lib/compat/vcbuild/README\nindex 29ec1d0f10..63ee00a4ef 100644\n--- a/compat/vcbuild/README\n+++ b/lib/compat/vcbuild/README\n@@ -6,17 +6,17 @@ The Steps to Build Git with VS2015 or VS2017 from the command line.\n    Prompt or from an SDK bash window:\n \n    $ cd <repo_root>\n-   $ ./compat/vcbuild/vcpkg_install.bat\n+   $ ./lib/compat/vcbuild/vcpkg_install.bat\n \n    The vcpkg tools and all of the third-party sources will be installed\n    in this folder:\n-      <repo_root>/compat/vcbuild/vcpkg/\n+      <repo_root>/lib/compat/vcbuild/vcpkg/\n \n    A file will be created with a set of Makefile macros pointing to a\n    unified \"include\", \"lib\", and \"bin\" directory (release and debug) for\n    all of the required packages.  This file will be included by the main\n    Makefile:\n-      <repo_root>/compat/vcbuild/MSVC-DEFS-GEN\n+      <repo_root>/lib/compat/vcbuild/MSVC-DEFS-GEN\n \n 2. OPTIONALLY copy the third-party *.dll and *.pdb files into the repo\n    root to make it easier to run and debug git.exe without having to\n@@ -26,8 +26,8 @@ The Steps to Build Git with VS2015 or VS2017 from the command line.\n    Use ONE of the following forms which should match how you want to\n    compile git.exe.\n \n-   $ ./compat/vcbuild/vcpkg_copy_dlls.bat debug\n-   $ ./compat/vcbuild/vcpkg_copy_dlls.bat release\n+   $ ./lib/compat/vcbuild/vcpkg_copy_dlls.bat debug\n+   $ ./lib/compat/vcbuild/vcpkg_copy_dlls.bat release\n \n 3. Build git using MSVC from an SDK bash window using one of the\n    following commands:\ndiff --git a/compat/vcbuild/find_vs_env.bat b/lib/compat/vcbuild/find_vs_env.bat\nsimilarity index 98%\nrename from compat/vcbuild/find_vs_env.bat\nrename to lib/compat/vcbuild/find_vs_env.bat\nindex b35d264c0e..30e884b3d7 100644\n--- a/compat/vcbuild/find_vs_env.bat\n+++ b/lib/compat/vcbuild/find_vs_env.bat\n@@ -25,7 +25,7 @@ REM\n REM The output of this script should be written to a make \"include\n REM file\" and referenced by the top-level Makefile.\n REM\n-REM See \"config.mak.uname\" (look for compat/vcbuild/MSVC-DEFS-GEN).\n+REM See \"config.mak.uname\" (look for lib/compat/vcbuild/MSVC-DEFS-GEN).\n REM ================================================================\n REM The provided command prompts are custom to each VS release and\n REM filled with lots of internal knowledge (such as Registry settings);\ndiff --git a/compat/vcbuild/include/sys/param.h b/lib/compat/vcbuild/include/sys/param.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/param.h\nrename to lib/compat/vcbuild/include/sys/param.h\ndiff --git a/compat/vcbuild/include/sys/time.h b/lib/compat/vcbuild/include/sys/time.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/time.h\nrename to lib/compat/vcbuild/include/sys/time.h\ndiff --git a/compat/vcbuild/include/sys/utime.h b/lib/compat/vcbuild/include/sys/utime.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/utime.h\nrename to lib/compat/vcbuild/include/sys/utime.h\ndiff --git a/compat/vcbuild/include/unistd.h b/lib/compat/vcbuild/include/unistd.h\nsimilarity index 100%\nrename from compat/vcbuild/include/unistd.h\nrename to lib/compat/vcbuild/include/unistd.h\ndiff --git a/compat/vcbuild/include/utime.h b/lib/compat/vcbuild/include/utime.h\nsimilarity index 100%\nrename from compat/vcbuild/include/utime.h\nrename to lib/compat/vcbuild/include/utime.h\ndiff --git a/compat/vcbuild/scripts/clink.pl b/lib/compat/vcbuild/scripts/clink.pl\nsimilarity index 100%\nrename from compat/vcbuild/scripts/clink.pl\nrename to lib/compat/vcbuild/scripts/clink.pl\ndiff --git a/compat/vcbuild/scripts/lib.pl b/lib/compat/vcbuild/scripts/lib.pl\nsimilarity index 100%\nrename from compat/vcbuild/scripts/lib.pl\nrename to lib/compat/vcbuild/scripts/lib.pl\ndiff --git a/compat/vcbuild/vcpkg_copy_dlls.bat b/lib/compat/vcbuild/vcpkg_copy_dlls.bat\nsimilarity index 100%\nrename from compat/vcbuild/vcpkg_copy_dlls.bat\nrename to lib/compat/vcbuild/vcpkg_copy_dlls.bat\ndiff --git a/compat/vcbuild/vcpkg_install.bat b/lib/compat/vcbuild/vcpkg_install.bat\nsimilarity index 95%\nrename from compat/vcbuild/vcpkg_install.bat\nrename to lib/compat/vcbuild/vcpkg_install.bat\nindex ebd0bad242..64c1b199e0 100644\n--- a/compat/vcbuild/vcpkg_install.bat\n+++ b/lib/compat/vcbuild/vcpkg_install.bat\n@@ -5,10 +5,10 @@ REM it to build the third-party libraries that git requires when it\n REM is built using MSVC.\n REM\n REM [1] Install VCPKG.\n-REM     [a] Create <root>/compat/vcbuild/vcpkg/\n+REM     [a] Create <root>/lib/compat/vcbuild/vcpkg/\n REM     [b] Download \"vcpkg\".\n REM     [c] Compile using the currently installed version of VS.\n-REM     [d] Create <root>/compat/vcbuild/vcpkg/vcpkg.exe\n+REM     [d] Create <root>/lib/compat/vcbuild/vcpkg/vcpkg.exe\n REM\n REM [2] Install third-party libraries.\n REM     [a] Download each (which may also install CMAKE).\ndiff --git a/compat/win32.h b/lib/compat/win32.h\nsimilarity index 100%\nrename from compat/win32.h\nrename to lib/compat/win32.h\ndiff --git a/compat/win32/alloca.h b/lib/compat/win32/alloca.h\nsimilarity index 100%\nrename from compat/win32/alloca.h\nrename to lib/compat/win32/alloca.h\ndiff --git a/compat/win32/dirent.c b/lib/compat/win32/dirent.c\nsimilarity index 100%\nrename from compat/win32/dirent.c\nrename to lib/compat/win32/dirent.c\ndiff --git a/compat/win32/dirent.h b/lib/compat/win32/dirent.h\nsimilarity index 100%\nrename from compat/win32/dirent.h\nrename to lib/compat/win32/dirent.h\ndiff --git a/compat/win32/flush.c b/lib/compat/win32/flush.c\nsimilarity index 100%\nrename from compat/win32/flush.c\nrename to lib/compat/win32/flush.c\ndiff --git a/compat/win32/git.manifest b/lib/compat/win32/git.manifest\nsimilarity index 100%\nrename from compat/win32/git.manifest\nrename to lib/compat/win32/git.manifest\ndiff --git a/compat/win32/headless.c b/lib/compat/win32/headless.c\nsimilarity index 100%\nrename from compat/win32/headless.c\nrename to lib/compat/win32/headless.c\ndiff --git a/compat/win32/lazyload.h b/lib/compat/win32/lazyload.h\nsimilarity index 100%\nrename from compat/win32/lazyload.h\nrename to lib/compat/win32/lazyload.h\ndiff --git a/compat/win32/path-utils.c b/lib/compat/win32/path-utils.c\nsimilarity index 100%\nrename from compat/win32/path-utils.c\nrename to lib/compat/win32/path-utils.c\ndiff --git a/compat/win32/path-utils.h b/lib/compat/win32/path-utils.h\nsimilarity index 100%\nrename from compat/win32/path-utils.h\nrename to lib/compat/win32/path-utils.h\ndiff --git a/compat/win32/pthread.c b/lib/compat/win32/pthread.c\nsimilarity index 100%\nrename from compat/win32/pthread.c\nrename to lib/compat/win32/pthread.c\ndiff --git a/compat/win32/pthread.h b/lib/compat/win32/pthread.h\nsimilarity index 100%\nrename from compat/win32/pthread.h\nrename to lib/compat/win32/pthread.h\ndiff --git a/compat/win32/syslog.c b/lib/compat/win32/syslog.c\nsimilarity index 100%\nrename from compat/win32/syslog.c\nrename to lib/compat/win32/syslog.c\ndiff --git a/compat/win32/syslog.h b/lib/compat/win32/syslog.h\nsimilarity index 100%\nrename from compat/win32/syslog.h\nrename to lib/compat/win32/syslog.h\ndiff --git a/compat/win32/trace2_win32_process_info.c b/lib/compat/win32/trace2_win32_process_info.c\nsimilarity index 100%\nrename from compat/win32/trace2_win32_process_info.c\nrename to lib/compat/win32/trace2_win32_process_info.c\ndiff --git a/compat/win32mmap.c b/lib/compat/win32mmap.c\nsimilarity index 100%\nrename from compat/win32mmap.c\nrename to lib/compat/win32mmap.c\ndiff --git a/compat/winansi.c b/lib/compat/winansi.c\nsimilarity index 100%\nrename from compat/winansi.c\nrename to lib/compat/winansi.c\ndiff --git a/compat/zlib-compat.h b/lib/compat/zlib-compat.h\nsimilarity index 100%\nrename from compat/zlib-compat.h\nrename to lib/compat/zlib-compat.h\ndiff --git a/compiler-tricks/not-constant.c b/lib/compiler-tricks/not-constant.c\nsimilarity index 100%\nrename from compiler-tricks/not-constant.c\nrename to lib/compiler-tricks/not-constant.c\ndiff --git a/config.c b/lib/config.c\nsimilarity index 100%\nrename from config.c\nrename to lib/config.c\ndiff --git a/config.h b/lib/config.h\nsimilarity index 100%\nrename from config.h\nrename to lib/config.h\ndiff --git a/connect.c b/lib/connect.c\nsimilarity index 100%\nrename from connect.c\nrename to lib/connect.c\ndiff --git a/connect.h b/lib/connect.h\nsimilarity index 100%\nrename from connect.h\nrename to lib/connect.h\ndiff --git a/connected.c b/lib/connected.c\nsimilarity index 100%\nrename from connected.c\nrename to lib/connected.c\ndiff --git a/connected.h b/lib/connected.h\nsimilarity index 100%\nrename from connected.h\nrename to lib/connected.h\ndiff --git a/convert.c b/lib/convert.c\nsimilarity index 100%\nrename from convert.c\nrename to lib/convert.c\ndiff --git a/convert.h b/lib/convert.h\nsimilarity index 100%\nrename from convert.h\nrename to lib/convert.h\ndiff --git a/copy.c b/lib/copy.c\nsimilarity index 100%\nrename from copy.c\nrename to lib/copy.c\ndiff --git a/copy.h b/lib/copy.h\nsimilarity index 100%\nrename from copy.h\nrename to lib/copy.h\ndiff --git a/credential.c b/lib/credential.c\nsimilarity index 100%\nrename from credential.c\nrename to lib/credential.c\ndiff --git a/credential.h b/lib/credential.h\nsimilarity index 100%\nrename from credential.h\nrename to lib/credential.h\ndiff --git a/csum-file.c b/lib/csum-file.c\nsimilarity index 100%\nrename from csum-file.c\nrename to lib/csum-file.c\ndiff --git a/csum-file.h b/lib/csum-file.h\nsimilarity index 100%\nrename from csum-file.h\nrename to lib/csum-file.h\ndiff --git a/ctype.c b/lib/ctype.c\nsimilarity index 100%\nrename from ctype.c\nrename to lib/ctype.c\ndiff --git a/date.c b/lib/date.c\nsimilarity index 100%\nrename from date.c\nrename to lib/date.c\ndiff --git a/date.h b/lib/date.h\nsimilarity index 100%\nrename from date.h\nrename to lib/date.h\ndiff --git a/decorate.c b/lib/decorate.c\nsimilarity index 100%\nrename from decorate.c\nrename to lib/decorate.c\ndiff --git a/decorate.h b/lib/decorate.h\nsimilarity index 100%\nrename from decorate.h\nrename to lib/decorate.h\ndiff --git a/delta-islands.c b/lib/delta-islands.c\nsimilarity index 100%\nrename from delta-islands.c\nrename to lib/delta-islands.c\ndiff --git a/delta-islands.h b/lib/delta-islands.h\nsimilarity index 100%\nrename from delta-islands.h\nrename to lib/delta-islands.h\ndiff --git a/delta.h b/lib/delta.h\nsimilarity index 100%\nrename from delta.h\nrename to lib/delta.h\ndiff --git a/diagnose.c b/lib/diagnose.c\nsimilarity index 100%\nrename from diagnose.c\nrename to lib/diagnose.c\ndiff --git a/diagnose.h b/lib/diagnose.h\nsimilarity index 100%\nrename from diagnose.h\nrename to lib/diagnose.h\ndiff --git a/diff-delta.c b/lib/diff-delta.c\nsimilarity index 100%\nrename from diff-delta.c\nrename to lib/diff-delta.c\ndiff --git a/diff-lib.c b/lib/diff-lib.c\nsimilarity index 100%\nrename from diff-lib.c\nrename to lib/diff-lib.c\ndiff --git a/diff-merges.c b/lib/diff-merges.c\nsimilarity index 100%\nrename from diff-merges.c\nrename to lib/diff-merges.c\ndiff --git a/diff-merges.h b/lib/diff-merges.h\nsimilarity index 100%\nrename from diff-merges.h\nrename to lib/diff-merges.h\ndiff --git a/diff-no-index.c b/lib/diff-no-index.c\nsimilarity index 100%\nrename from diff-no-index.c\nrename to lib/diff-no-index.c\ndiff --git a/diff.c b/lib/diff.c\nsimilarity index 100%\nrename from diff.c\nrename to lib/diff.c\ndiff --git a/diff.h b/lib/diff.h\nsimilarity index 100%\nrename from diff.h\nrename to lib/diff.h\ndiff --git a/diffcore-break.c b/lib/diffcore-break.c\nsimilarity index 100%\nrename from diffcore-break.c\nrename to lib/diffcore-break.c\ndiff --git a/diffcore-delta.c b/lib/diffcore-delta.c\nsimilarity index 100%\nrename from diffcore-delta.c\nrename to lib/diffcore-delta.c\ndiff --git a/diffcore-order.c b/lib/diffcore-order.c\nsimilarity index 100%\nrename from diffcore-order.c\nrename to lib/diffcore-order.c\ndiff --git a/diffcore-pickaxe.c b/lib/diffcore-pickaxe.c\nsimilarity index 100%\nrename from diffcore-pickaxe.c\nrename to lib/diffcore-pickaxe.c\ndiff --git a/diffcore-rename.c b/lib/diffcore-rename.c\nsimilarity index 100%\nrename from diffcore-rename.c\nrename to lib/diffcore-rename.c\ndiff --git a/diffcore-rotate.c b/lib/diffcore-rotate.c\nsimilarity index 100%\nrename from diffcore-rotate.c\nrename to lib/diffcore-rotate.c\ndiff --git a/diffcore.h b/lib/diffcore.h\nsimilarity index 100%\nrename from diffcore.h\nrename to lib/diffcore.h\ndiff --git a/dir-iterator.c b/lib/dir-iterator.c\nsimilarity index 100%\nrename from dir-iterator.c\nrename to lib/dir-iterator.c\ndiff --git a/dir-iterator.h b/lib/dir-iterator.h\nsimilarity index 100%\nrename from dir-iterator.h\nrename to lib/dir-iterator.h\ndiff --git a/dir.c b/lib/dir.c\nsimilarity index 100%\nrename from dir.c\nrename to lib/dir.c\ndiff --git a/dir.h b/lib/dir.h\nsimilarity index 100%\nrename from dir.h\nrename to lib/dir.h\ndiff --git a/editor.c b/lib/editor.c\nsimilarity index 100%\nrename from editor.c\nrename to lib/editor.c\ndiff --git a/editor.h b/lib/editor.h\nsimilarity index 100%\nrename from editor.h\nrename to lib/editor.h\ndiff --git a/entry.c b/lib/entry.c\nsimilarity index 100%\nrename from entry.c\nrename to lib/entry.c\ndiff --git a/entry.h b/lib/entry.h\nsimilarity index 100%\nrename from entry.h\nrename to lib/entry.h\ndiff --git a/environment.c b/lib/environment.c\nsimilarity index 100%\nrename from environment.c\nrename to lib/environment.c\ndiff --git a/environment.h b/lib/environment.h\nsimilarity index 100%\nrename from environment.h\nrename to lib/environment.h\ndiff --git a/ewah/bitmap.c b/lib/ewah/bitmap.c\nsimilarity index 100%\nrename from ewah/bitmap.c\nrename to lib/ewah/bitmap.c\ndiff --git a/ewah/ewah_bitmap.c b/lib/ewah/ewah_bitmap.c\nsimilarity index 100%\nrename from ewah/ewah_bitmap.c\nrename to lib/ewah/ewah_bitmap.c\ndiff --git a/ewah/ewah_io.c b/lib/ewah/ewah_io.c\nsimilarity index 100%\nrename from ewah/ewah_io.c\nrename to lib/ewah/ewah_io.c\ndiff --git a/ewah/ewah_rlw.c b/lib/ewah/ewah_rlw.c\nsimilarity index 100%\nrename from ewah/ewah_rlw.c\nrename to lib/ewah/ewah_rlw.c\ndiff --git a/ewah/ewok.h b/lib/ewah/ewok.h\nsimilarity index 100%\nrename from ewah/ewok.h\nrename to lib/ewah/ewok.h\ndiff --git a/ewah/ewok_rlw.h b/lib/ewah/ewok_rlw.h\nsimilarity index 100%\nrename from ewah/ewok_rlw.h\nrename to lib/ewah/ewok_rlw.h\ndiff --git a/exec-cmd.c b/lib/exec-cmd.c\nsimilarity index 100%\nrename from exec-cmd.c\nrename to lib/exec-cmd.c\ndiff --git a/exec-cmd.h b/lib/exec-cmd.h\nsimilarity index 100%\nrename from exec-cmd.h\nrename to lib/exec-cmd.h\ndiff --git a/fetch-negotiator.c b/lib/fetch-negotiator.c\nsimilarity index 100%\nrename from fetch-negotiator.c\nrename to lib/fetch-negotiator.c\ndiff --git a/fetch-negotiator.h b/lib/fetch-negotiator.h\nsimilarity index 100%\nrename from fetch-negotiator.h\nrename to lib/fetch-negotiator.h\ndiff --git a/fetch-pack.c b/lib/fetch-pack.c\nsimilarity index 100%\nrename from fetch-pack.c\nrename to lib/fetch-pack.c\ndiff --git a/fetch-pack.h b/lib/fetch-pack.h\nsimilarity index 100%\nrename from fetch-pack.h\nrename to lib/fetch-pack.h\ndiff --git a/fmt-merge-msg.c b/lib/fmt-merge-msg.c\nsimilarity index 100%\nrename from fmt-merge-msg.c\nrename to lib/fmt-merge-msg.c\ndiff --git a/fmt-merge-msg.h b/lib/fmt-merge-msg.h\nsimilarity index 100%\nrename from fmt-merge-msg.h\nrename to lib/fmt-merge-msg.h\ndiff --git a/for-each-ref.h b/lib/for-each-ref.h\nsimilarity index 100%\nrename from for-each-ref.h\nrename to lib/for-each-ref.h\ndiff --git a/fsck.c b/lib/fsck.c\nsimilarity index 100%\nrename from fsck.c\nrename to lib/fsck.c\ndiff --git a/fsck.h b/lib/fsck.h\nsimilarity index 100%\nrename from fsck.h\nrename to lib/fsck.h\ndiff --git a/fsmonitor--daemon.h b/lib/fsmonitor--daemon.h\nsimilarity index 100%\nrename from fsmonitor--daemon.h\nrename to lib/fsmonitor--daemon.h\ndiff --git a/fsmonitor-ipc.c b/lib/fsmonitor-ipc.c\nsimilarity index 100%\nrename from fsmonitor-ipc.c\nrename to lib/fsmonitor-ipc.c\ndiff --git a/fsmonitor-ipc.h b/lib/fsmonitor-ipc.h\nsimilarity index 100%\nrename from fsmonitor-ipc.h\nrename to lib/fsmonitor-ipc.h\ndiff --git a/fsmonitor-ll.h b/lib/fsmonitor-ll.h\nsimilarity index 100%\nrename from fsmonitor-ll.h\nrename to lib/fsmonitor-ll.h\ndiff --git a/fsmonitor-path-utils.h b/lib/fsmonitor-path-utils.h\nsimilarity index 100%\nrename from fsmonitor-path-utils.h\nrename to lib/fsmonitor-path-utils.h\ndiff --git a/fsmonitor-settings.c b/lib/fsmonitor-settings.c\nsimilarity index 100%\nrename from fsmonitor-settings.c\nrename to lib/fsmonitor-settings.c\ndiff --git a/fsmonitor-settings.h b/lib/fsmonitor-settings.h\nsimilarity index 100%\nrename from fsmonitor-settings.h\nrename to lib/fsmonitor-settings.h\ndiff --git a/fsmonitor.c b/lib/fsmonitor.c\nsimilarity index 100%\nrename from fsmonitor.c\nrename to lib/fsmonitor.c\ndiff --git a/fsmonitor.h b/lib/fsmonitor.h\nsimilarity index 100%\nrename from fsmonitor.h\nrename to lib/fsmonitor.h\ndiff --git a/gettext.c b/lib/gettext.c\nsimilarity index 100%\nrename from gettext.c\nrename to lib/gettext.c\ndiff --git a/gettext.h b/lib/gettext.h\nsimilarity index 100%\nrename from gettext.h\nrename to lib/gettext.h\ndiff --git a/git-compat-util.h b/lib/git-compat-util.h\nsimilarity index 100%\nrename from git-compat-util.h\nrename to lib/git-compat-util.h\ndiff --git a/git-curl-compat.h b/lib/git-curl-compat.h\nsimilarity index 100%\nrename from git-curl-compat.h\nrename to lib/git-curl-compat.h\ndiff --git a/git-zlib.c b/lib/git-zlib.c\nsimilarity index 100%\nrename from git-zlib.c\nrename to lib/git-zlib.c\ndiff --git a/git-zlib.h b/lib/git-zlib.h\nsimilarity index 100%\nrename from git-zlib.h\nrename to lib/git-zlib.h\ndiff --git a/gpg-interface.c b/lib/gpg-interface.c\nsimilarity index 100%\nrename from gpg-interface.c\nrename to lib/gpg-interface.c\ndiff --git a/gpg-interface.h b/lib/gpg-interface.h\nsimilarity index 100%\nrename from gpg-interface.h\nrename to lib/gpg-interface.h\ndiff --git a/graph.c b/lib/graph.c\nsimilarity index 100%\nrename from graph.c\nrename to lib/graph.c\ndiff --git a/graph.h b/lib/graph.h\nsimilarity index 100%\nrename from graph.h\nrename to lib/graph.h\ndiff --git a/grep.c b/lib/grep.c\nsimilarity index 100%\nrename from grep.c\nrename to lib/grep.c\ndiff --git a/grep.h b/lib/grep.h\nsimilarity index 100%\nrename from grep.h\nrename to lib/grep.h\ndiff --git a/hash-lookup.c b/lib/hash-lookup.c\nsimilarity index 100%\nrename from hash-lookup.c\nrename to lib/hash-lookup.c\ndiff --git a/hash-lookup.h b/lib/hash-lookup.h\nsimilarity index 100%\nrename from hash-lookup.h\nrename to lib/hash-lookup.h\ndiff --git a/hash.c b/lib/hash.c\nsimilarity index 100%\nrename from hash.c\nrename to lib/hash.c\ndiff --git a/hash.h b/lib/hash.h\nsimilarity index 100%\nrename from hash.h\nrename to lib/hash.h\ndiff --git a/hashmap.c b/lib/hashmap.c\nsimilarity index 100%\nrename from hashmap.c\nrename to lib/hashmap.c\ndiff --git a/hashmap.h b/lib/hashmap.h\nsimilarity index 100%\nrename from hashmap.h\nrename to lib/hashmap.h\ndiff --git a/help.c b/lib/help.c\nsimilarity index 100%\nrename from help.c\nrename to lib/help.c\ndiff --git a/help.h b/lib/help.h\nsimilarity index 100%\nrename from help.h\nrename to lib/help.h\ndiff --git a/hex-ll.c b/lib/hex-ll.c\nsimilarity index 100%\nrename from hex-ll.c\nrename to lib/hex-ll.c\ndiff --git a/hex-ll.h b/lib/hex-ll.h\nsimilarity index 100%\nrename from hex-ll.h\nrename to lib/hex-ll.h\ndiff --git a/hex.c b/lib/hex.c\nsimilarity index 100%\nrename from hex.c\nrename to lib/hex.c\ndiff --git a/hex.h b/lib/hex.h\nsimilarity index 100%\nrename from hex.h\nrename to lib/hex.h\ndiff --git a/hook.c b/lib/hook.c\nsimilarity index 100%\nrename from hook.c\nrename to lib/hook.c\ndiff --git a/hook.h b/lib/hook.h\nsimilarity index 100%\nrename from hook.h\nrename to lib/hook.h\ndiff --git a/http-walker.c b/lib/http-walker.c\nsimilarity index 100%\nrename from http-walker.c\nrename to lib/http-walker.c\ndiff --git a/http.c b/lib/http.c\nsimilarity index 100%\nrename from http.c\nrename to lib/http.c\ndiff --git a/http.h b/lib/http.h\nsimilarity index 100%\nrename from http.h\nrename to lib/http.h\ndiff --git a/ident.c b/lib/ident.c\nsimilarity index 100%\nrename from ident.c\nrename to lib/ident.c\ndiff --git a/ident.h b/lib/ident.h\nsimilarity index 100%\nrename from ident.h\nrename to lib/ident.h\ndiff --git a/iterator.h b/lib/iterator.h\nsimilarity index 100%\nrename from iterator.h\nrename to lib/iterator.h\ndiff --git a/json-writer.c b/lib/json-writer.c\nsimilarity index 100%\nrename from json-writer.c\nrename to lib/json-writer.c\ndiff --git a/json-writer.h b/lib/json-writer.h\nsimilarity index 100%\nrename from json-writer.h\nrename to lib/json-writer.h\ndiff --git a/khash.h b/lib/khash.h\nsimilarity index 100%\nrename from khash.h\nrename to lib/khash.h\ndiff --git a/kwset.c b/lib/kwset.c\nsimilarity index 100%\nrename from kwset.c\nrename to lib/kwset.c\ndiff --git a/kwset.h b/lib/kwset.h\nsimilarity index 100%\nrename from kwset.h\nrename to lib/kwset.h\ndiff --git a/levenshtein.c b/lib/levenshtein.c\nsimilarity index 100%\nrename from levenshtein.c\nrename to lib/levenshtein.c\ndiff --git a/levenshtein.h b/lib/levenshtein.h\nsimilarity index 100%\nrename from levenshtein.h\nrename to lib/levenshtein.h\ndiff --git a/line-log.c b/lib/line-log.c\nsimilarity index 100%\nrename from line-log.c\nrename to lib/line-log.c\ndiff --git a/line-log.h b/lib/line-log.h\nsimilarity index 100%\nrename from line-log.h\nrename to lib/line-log.h\ndiff --git a/line-range.c b/lib/line-range.c\nsimilarity index 100%\nrename from line-range.c\nrename to lib/line-range.c\ndiff --git a/line-range.h b/lib/line-range.h\nsimilarity index 100%\nrename from line-range.h\nrename to lib/line-range.h\ndiff --git a/linear-assignment.c b/lib/linear-assignment.c\nsimilarity index 100%\nrename from linear-assignment.c\nrename to lib/linear-assignment.c\ndiff --git a/linear-assignment.h b/lib/linear-assignment.h\nsimilarity index 100%\nrename from linear-assignment.h\nrename to lib/linear-assignment.h\ndiff --git a/list-objects-filter-options.c b/lib/list-objects-filter-options.c\nsimilarity index 100%\nrename from list-objects-filter-options.c\nrename to lib/list-objects-filter-options.c\ndiff --git a/list-objects-filter-options.h b/lib/list-objects-filter-options.h\nsimilarity index 100%\nrename from list-objects-filter-options.h\nrename to lib/list-objects-filter-options.h\ndiff --git a/list-objects-filter.c b/lib/list-objects-filter.c\nsimilarity index 100%\nrename from list-objects-filter.c\nrename to lib/list-objects-filter.c\ndiff --git a/list-objects-filter.h b/lib/list-objects-filter.h\nsimilarity index 100%\nrename from list-objects-filter.h\nrename to lib/list-objects-filter.h\ndiff --git a/list-objects.c b/lib/list-objects.c\nsimilarity index 100%\nrename from list-objects.c\nrename to lib/list-objects.c\ndiff --git a/list-objects.h b/lib/list-objects.h\nsimilarity index 100%\nrename from list-objects.h\nrename to lib/list-objects.h\ndiff --git a/list.h b/lib/list.h\nsimilarity index 100%\nrename from list.h\nrename to lib/list.h\ndiff --git a/lockfile.c b/lib/lockfile.c\nsimilarity index 100%\nrename from lockfile.c\nrename to lib/lockfile.c\ndiff --git a/lockfile.h b/lib/lockfile.h\nsimilarity index 100%\nrename from lockfile.h\nrename to lib/lockfile.h\ndiff --git a/log-tree.c b/lib/log-tree.c\nsimilarity index 100%\nrename from log-tree.c\nrename to lib/log-tree.c\ndiff --git a/log-tree.h b/lib/log-tree.h\nsimilarity index 100%\nrename from log-tree.h\nrename to lib/log-tree.h\ndiff --git a/loose.c b/lib/loose.c\nsimilarity index 100%\nrename from loose.c\nrename to lib/loose.c\ndiff --git a/loose.h b/lib/loose.h\nsimilarity index 100%\nrename from loose.h\nrename to lib/loose.h\ndiff --git a/ls-refs.c b/lib/ls-refs.c\nsimilarity index 100%\nrename from ls-refs.c\nrename to lib/ls-refs.c\ndiff --git a/ls-refs.h b/lib/ls-refs.h\nsimilarity index 100%\nrename from ls-refs.h\nrename to lib/ls-refs.h\ndiff --git a/mailinfo.c b/lib/mailinfo.c\nsimilarity index 100%\nrename from mailinfo.c\nrename to lib/mailinfo.c\ndiff --git a/mailinfo.h b/lib/mailinfo.h\nsimilarity index 100%\nrename from mailinfo.h\nrename to lib/mailinfo.h\ndiff --git a/mailmap.c b/lib/mailmap.c\nsimilarity index 100%\nrename from mailmap.c\nrename to lib/mailmap.c\ndiff --git a/mailmap.h b/lib/mailmap.h\nsimilarity index 100%\nrename from mailmap.h\nrename to lib/mailmap.h\ndiff --git a/match-trees.c b/lib/match-trees.c\nsimilarity index 100%\nrename from match-trees.c\nrename to lib/match-trees.c\ndiff --git a/match-trees.h b/lib/match-trees.h\nsimilarity index 100%\nrename from match-trees.h\nrename to lib/match-trees.h\ndiff --git a/mem-pool.c b/lib/mem-pool.c\nsimilarity index 100%\nrename from mem-pool.c\nrename to lib/mem-pool.c\ndiff --git a/mem-pool.h b/lib/mem-pool.h\nsimilarity index 100%\nrename from mem-pool.h\nrename to lib/mem-pool.h\ndiff --git a/merge-blobs.c b/lib/merge-blobs.c\nsimilarity index 100%\nrename from merge-blobs.c\nrename to lib/merge-blobs.c\ndiff --git a/merge-blobs.h b/lib/merge-blobs.h\nsimilarity index 100%\nrename from merge-blobs.h\nrename to lib/merge-blobs.h\ndiff --git a/merge-ll.c b/lib/merge-ll.c\nsimilarity index 100%\nrename from merge-ll.c\nrename to lib/merge-ll.c\ndiff --git a/merge-ll.h b/lib/merge-ll.h\nsimilarity index 100%\nrename from merge-ll.h\nrename to lib/merge-ll.h\ndiff --git a/merge-ort-wrappers.c b/lib/merge-ort-wrappers.c\nsimilarity index 100%\nrename from merge-ort-wrappers.c\nrename to lib/merge-ort-wrappers.c\ndiff --git a/merge-ort-wrappers.h b/lib/merge-ort-wrappers.h\nsimilarity index 100%\nrename from merge-ort-wrappers.h\nrename to lib/merge-ort-wrappers.h\ndiff --git a/merge-ort.c b/lib/merge-ort.c\nsimilarity index 100%\nrename from merge-ort.c\nrename to lib/merge-ort.c\ndiff --git a/merge-ort.h b/lib/merge-ort.h\nsimilarity index 100%\nrename from merge-ort.h\nrename to lib/merge-ort.h\ndiff --git a/merge.c b/lib/merge.c\nsimilarity index 100%\nrename from merge.c\nrename to lib/merge.c\ndiff --git a/merge.h b/lib/merge.h\nsimilarity index 100%\nrename from merge.h\nrename to lib/merge.h\ndiff --git a/mergesort.h b/lib/mergesort.h\nsimilarity index 100%\nrename from mergesort.h\nrename to lib/mergesort.h\ndiff --git a/midx-write.c b/lib/midx-write.c\nsimilarity index 100%\nrename from midx-write.c\nrename to lib/midx-write.c\ndiff --git a/midx.c b/lib/midx.c\nsimilarity index 100%\nrename from midx.c\nrename to lib/midx.c\ndiff --git a/midx.h b/lib/midx.h\nsimilarity index 100%\nrename from midx.h\nrename to lib/midx.h\ndiff --git a/name-hash.c b/lib/name-hash.c\nsimilarity index 100%\nrename from name-hash.c\nrename to lib/name-hash.c\ndiff --git a/name-hash.h b/lib/name-hash.h\nsimilarity index 100%\nrename from name-hash.h\nrename to lib/name-hash.h\ndiff --git a/negotiator/default.c b/lib/negotiator/default.c\nsimilarity index 100%\nrename from negotiator/default.c\nrename to lib/negotiator/default.c\ndiff --git a/negotiator/default.h b/lib/negotiator/default.h\nsimilarity index 100%\nrename from negotiator/default.h\nrename to lib/negotiator/default.h\ndiff --git a/negotiator/noop.c b/lib/negotiator/noop.c\nsimilarity index 100%\nrename from negotiator/noop.c\nrename to lib/negotiator/noop.c\ndiff --git a/negotiator/noop.h b/lib/negotiator/noop.h\nsimilarity index 100%\nrename from negotiator/noop.h\nrename to lib/negotiator/noop.h\ndiff --git a/negotiator/skipping.c b/lib/negotiator/skipping.c\nsimilarity index 100%\nrename from negotiator/skipping.c\nrename to lib/negotiator/skipping.c\ndiff --git a/negotiator/skipping.h b/lib/negotiator/skipping.h\nsimilarity index 100%\nrename from negotiator/skipping.h\nrename to lib/negotiator/skipping.h\ndiff --git a/notes-cache.c b/lib/notes-cache.c\nsimilarity index 100%\nrename from notes-cache.c\nrename to lib/notes-cache.c\ndiff --git a/notes-cache.h b/lib/notes-cache.h\nsimilarity index 100%\nrename from notes-cache.h\nrename to lib/notes-cache.h\ndiff --git a/notes-merge.c b/lib/notes-merge.c\nsimilarity index 100%\nrename from notes-merge.c\nrename to lib/notes-merge.c\ndiff --git a/notes-merge.h b/lib/notes-merge.h\nsimilarity index 100%\nrename from notes-merge.h\nrename to lib/notes-merge.h\ndiff --git a/notes-utils.c b/lib/notes-utils.c\nsimilarity index 100%\nrename from notes-utils.c\nrename to lib/notes-utils.c\ndiff --git a/notes-utils.h b/lib/notes-utils.h\nsimilarity index 100%\nrename from notes-utils.h\nrename to lib/notes-utils.h\ndiff --git a/notes.c b/lib/notes.c\nsimilarity index 100%\nrename from notes.c\nrename to lib/notes.c\ndiff --git a/notes.h b/lib/notes.h\nsimilarity index 100%\nrename from notes.h\nrename to lib/notes.h\ndiff --git a/object-file-convert.c b/lib/object-file-convert.c\nsimilarity index 100%\nrename from object-file-convert.c\nrename to lib/object-file-convert.c\ndiff --git a/object-file-convert.h b/lib/object-file-convert.h\nsimilarity index 100%\nrename from object-file-convert.h\nrename to lib/object-file-convert.h\ndiff --git a/object-file.c b/lib/object-file.c\nsimilarity index 100%\nrename from object-file.c\nrename to lib/object-file.c\ndiff --git a/object-file.h b/lib/object-file.h\nsimilarity index 100%\nrename from object-file.h\nrename to lib/object-file.h\ndiff --git a/object-name.c b/lib/object-name.c\nsimilarity index 100%\nrename from object-name.c\nrename to lib/object-name.c\ndiff --git a/object-name.h b/lib/object-name.h\nsimilarity index 100%\nrename from object-name.h\nrename to lib/object-name.h\ndiff --git a/object.c b/lib/object.c\nsimilarity index 100%\nrename from object.c\nrename to lib/object.c\ndiff --git a/object.h b/lib/object.h\nsimilarity index 100%\nrename from object.h\nrename to lib/object.h\ndiff --git a/odb.c b/lib/odb.c\nsimilarity index 100%\nrename from odb.c\nrename to lib/odb.c\ndiff --git a/odb.h b/lib/odb.h\nsimilarity index 100%\nrename from odb.h\nrename to lib/odb.h\ndiff --git a/odb/source-files.c b/lib/odb/source-files.c\nsimilarity index 100%\nrename from odb/source-files.c\nrename to lib/odb/source-files.c\ndiff --git a/odb/source-files.h b/lib/odb/source-files.h\nsimilarity index 100%\nrename from odb/source-files.h\nrename to lib/odb/source-files.h\ndiff --git a/odb/source.c b/lib/odb/source.c\nsimilarity index 100%\nrename from odb/source.c\nrename to lib/odb/source.c\ndiff --git a/odb/source.h b/lib/odb/source.h\nsimilarity index 100%\nrename from odb/source.h\nrename to lib/odb/source.h\ndiff --git a/odb/streaming.c b/lib/odb/streaming.c\nsimilarity index 100%\nrename from odb/streaming.c\nrename to lib/odb/streaming.c\ndiff --git a/odb/streaming.h b/lib/odb/streaming.h\nsimilarity index 100%\nrename from odb/streaming.h\nrename to lib/odb/streaming.h\ndiff --git a/oid-array.c b/lib/oid-array.c\nsimilarity index 100%\nrename from oid-array.c\nrename to lib/oid-array.c\ndiff --git a/oid-array.h b/lib/oid-array.h\nsimilarity index 100%\nrename from oid-array.h\nrename to lib/oid-array.h\ndiff --git a/oidmap.c b/lib/oidmap.c\nsimilarity index 100%\nrename from oidmap.c\nrename to lib/oidmap.c\ndiff --git a/oidmap.h b/lib/oidmap.h\nsimilarity index 100%\nrename from oidmap.h\nrename to lib/oidmap.h\ndiff --git a/oidset.c b/lib/oidset.c\nsimilarity index 100%\nrename from oidset.c\nrename to lib/oidset.c\ndiff --git a/oidset.h b/lib/oidset.h\nsimilarity index 100%\nrename from oidset.h\nrename to lib/oidset.h\ndiff --git a/oidtree.c b/lib/oidtree.c\nsimilarity index 100%\nrename from oidtree.c\nrename to lib/oidtree.c\ndiff --git a/oidtree.h b/lib/oidtree.h\nsimilarity index 100%\nrename from oidtree.h\nrename to lib/oidtree.h\ndiff --git a/pack-bitmap-write.c b/lib/pack-bitmap-write.c\nsimilarity index 100%\nrename from pack-bitmap-write.c\nrename to lib/pack-bitmap-write.c\ndiff --git a/pack-bitmap.c b/lib/pack-bitmap.c\nsimilarity index 100%\nrename from pack-bitmap.c\nrename to lib/pack-bitmap.c\ndiff --git a/pack-bitmap.h b/lib/pack-bitmap.h\nsimilarity index 100%\nrename from pack-bitmap.h\nrename to lib/pack-bitmap.h\ndiff --git a/pack-check.c b/lib/pack-check.c\nsimilarity index 100%\nrename from pack-check.c\nrename to lib/pack-check.c\ndiff --git a/pack-mtimes.c b/lib/pack-mtimes.c\nsimilarity index 100%\nrename from pack-mtimes.c\nrename to lib/pack-mtimes.c\ndiff --git a/pack-mtimes.h b/lib/pack-mtimes.h\nsimilarity index 100%\nrename from pack-mtimes.h\nrename to lib/pack-mtimes.h\ndiff --git a/pack-objects.c b/lib/pack-objects.c\nsimilarity index 100%\nrename from pack-objects.c\nrename to lib/pack-objects.c\ndiff --git a/pack-objects.h b/lib/pack-objects.h\nsimilarity index 100%\nrename from pack-objects.h\nrename to lib/pack-objects.h\ndiff --git a/pack-refs.c b/lib/pack-refs.c\nsimilarity index 100%\nrename from pack-refs.c\nrename to lib/pack-refs.c\ndiff --git a/pack-refs.h b/lib/pack-refs.h\nsimilarity index 100%\nrename from pack-refs.h\nrename to lib/pack-refs.h\ndiff --git a/pack-revindex.c b/lib/pack-revindex.c\nsimilarity index 100%\nrename from pack-revindex.c\nrename to lib/pack-revindex.c\ndiff --git a/pack-revindex.h b/lib/pack-revindex.h\nsimilarity index 100%\nrename from pack-revindex.h\nrename to lib/pack-revindex.h\ndiff --git a/pack-write.c b/lib/pack-write.c\nsimilarity index 100%\nrename from pack-write.c\nrename to lib/pack-write.c\ndiff --git a/pack.h b/lib/pack.h\nsimilarity index 100%\nrename from pack.h\nrename to lib/pack.h\ndiff --git a/packfile.c b/lib/packfile.c\nsimilarity index 100%\nrename from packfile.c\nrename to lib/packfile.c\ndiff --git a/packfile.h b/lib/packfile.h\nsimilarity index 100%\nrename from packfile.h\nrename to lib/packfile.h\ndiff --git a/pager.c b/lib/pager.c\nsimilarity index 100%\nrename from pager.c\nrename to lib/pager.c\ndiff --git a/pager.h b/lib/pager.h\nsimilarity index 100%\nrename from pager.h\nrename to lib/pager.h\ndiff --git a/parallel-checkout.c b/lib/parallel-checkout.c\nsimilarity index 100%\nrename from parallel-checkout.c\nrename to lib/parallel-checkout.c\ndiff --git a/parallel-checkout.h b/lib/parallel-checkout.h\nsimilarity index 100%\nrename from parallel-checkout.h\nrename to lib/parallel-checkout.h\ndiff --git a/parse-options-cb.c b/lib/parse-options-cb.c\nsimilarity index 100%\nrename from parse-options-cb.c\nrename to lib/parse-options-cb.c\ndiff --git a/parse-options.c b/lib/parse-options.c\nsimilarity index 100%\nrename from parse-options.c\nrename to lib/parse-options.c\ndiff --git a/parse-options.h b/lib/parse-options.h\nsimilarity index 100%\nrename from parse-options.h\nrename to lib/parse-options.h\ndiff --git a/parse.c b/lib/parse.c\nsimilarity index 100%\nrename from parse.c\nrename to lib/parse.c\ndiff --git a/parse.h b/lib/parse.h\nsimilarity index 100%\nrename from parse.h\nrename to lib/parse.h\ndiff --git a/patch-delta.c b/lib/patch-delta.c\nsimilarity index 100%\nrename from patch-delta.c\nrename to lib/patch-delta.c\ndiff --git a/patch-ids.c b/lib/patch-ids.c\nsimilarity index 100%\nrename from patch-ids.c\nrename to lib/patch-ids.c\ndiff --git a/patch-ids.h b/lib/patch-ids.h\nsimilarity index 100%\nrename from patch-ids.h\nrename to lib/patch-ids.h\ndiff --git a/path-walk.c b/lib/path-walk.c\nsimilarity index 100%\nrename from path-walk.c\nrename to lib/path-walk.c\ndiff --git a/path-walk.h b/lib/path-walk.h\nsimilarity index 100%\nrename from path-walk.h\nrename to lib/path-walk.h\ndiff --git a/path.c b/lib/path.c\nsimilarity index 100%\nrename from path.c\nrename to lib/path.c\ndiff --git a/path.h b/lib/path.h\nsimilarity index 100%\nrename from path.h\nrename to lib/path.h\ndiff --git a/pathspec.c b/lib/pathspec.c\nsimilarity index 100%\nrename from pathspec.c\nrename to lib/pathspec.c\ndiff --git a/pathspec.h b/lib/pathspec.h\nsimilarity index 100%\nrename from pathspec.h\nrename to lib/pathspec.h\ndiff --git a/pkt-line.c b/lib/pkt-line.c\nsimilarity index 100%\nrename from pkt-line.c\nrename to lib/pkt-line.c\ndiff --git a/pkt-line.h b/lib/pkt-line.h\nsimilarity index 100%\nrename from pkt-line.h\nrename to lib/pkt-line.h\ndiff --git a/preload-index.c b/lib/preload-index.c\nsimilarity index 100%\nrename from preload-index.c\nrename to lib/preload-index.c\ndiff --git a/preload-index.h b/lib/preload-index.h\nsimilarity index 100%\nrename from preload-index.h\nrename to lib/preload-index.h\ndiff --git a/pretty.c b/lib/pretty.c\nsimilarity index 100%\nrename from pretty.c\nrename to lib/pretty.c\ndiff --git a/pretty.h b/lib/pretty.h\nsimilarity index 100%\nrename from pretty.h\nrename to lib/pretty.h\ndiff --git a/prio-queue.c b/lib/prio-queue.c\nsimilarity index 100%\nrename from prio-queue.c\nrename to lib/prio-queue.c\ndiff --git a/prio-queue.h b/lib/prio-queue.h\nsimilarity index 100%\nrename from prio-queue.h\nrename to lib/prio-queue.h\ndiff --git a/progress.c b/lib/progress.c\nsimilarity index 100%\nrename from progress.c\nrename to lib/progress.c\ndiff --git a/progress.h b/lib/progress.h\nsimilarity index 100%\nrename from progress.h\nrename to lib/progress.h\ndiff --git a/promisor-remote.c b/lib/promisor-remote.c\nsimilarity index 100%\nrename from promisor-remote.c\nrename to lib/promisor-remote.c\ndiff --git a/promisor-remote.h b/lib/promisor-remote.h\nsimilarity index 100%\nrename from promisor-remote.h\nrename to lib/promisor-remote.h\ndiff --git a/prompt.c b/lib/prompt.c\nsimilarity index 100%\nrename from prompt.c\nrename to lib/prompt.c\ndiff --git a/prompt.h b/lib/prompt.h\nsimilarity index 100%\nrename from prompt.h\nrename to lib/prompt.h\ndiff --git a/protocol-caps.c b/lib/protocol-caps.c\nsimilarity index 100%\nrename from protocol-caps.c\nrename to lib/protocol-caps.c\ndiff --git a/protocol-caps.h b/lib/protocol-caps.h\nsimilarity index 100%\nrename from protocol-caps.h\nrename to lib/protocol-caps.h\ndiff --git a/protocol.c b/lib/protocol.c\nsimilarity index 100%\nrename from protocol.c\nrename to lib/protocol.c\ndiff --git a/protocol.h b/lib/protocol.h\nsimilarity index 100%\nrename from protocol.h\nrename to lib/protocol.h\ndiff --git a/prune-packed.c b/lib/prune-packed.c\nsimilarity index 100%\nrename from prune-packed.c\nrename to lib/prune-packed.c\ndiff --git a/prune-packed.h b/lib/prune-packed.h\nsimilarity index 100%\nrename from prune-packed.h\nrename to lib/prune-packed.h\ndiff --git a/pseudo-merge.c b/lib/pseudo-merge.c\nsimilarity index 100%\nrename from pseudo-merge.c\nrename to lib/pseudo-merge.c\ndiff --git a/pseudo-merge.h b/lib/pseudo-merge.h\nsimilarity index 100%\nrename from pseudo-merge.h\nrename to lib/pseudo-merge.h\ndiff --git a/quote.c b/lib/quote.c\nsimilarity index 100%\nrename from quote.c\nrename to lib/quote.c\ndiff --git a/quote.h b/lib/quote.h\nsimilarity index 100%\nrename from quote.h\nrename to lib/quote.h\ndiff --git a/range-diff.c b/lib/range-diff.c\nsimilarity index 100%\nrename from range-diff.c\nrename to lib/range-diff.c\ndiff --git a/range-diff.h b/lib/range-diff.h\nsimilarity index 100%\nrename from range-diff.h\nrename to lib/range-diff.h\ndiff --git a/reachable.c b/lib/reachable.c\nsimilarity index 100%\nrename from reachable.c\nrename to lib/reachable.c\ndiff --git a/reachable.h b/lib/reachable.h\nsimilarity index 100%\nrename from reachable.h\nrename to lib/reachable.h\ndiff --git a/read-cache-ll.h b/lib/read-cache-ll.h\nsimilarity index 100%\nrename from read-cache-ll.h\nrename to lib/read-cache-ll.h\ndiff --git a/read-cache.c b/lib/read-cache.c\nsimilarity index 100%\nrename from read-cache.c\nrename to lib/read-cache.c\ndiff --git a/read-cache.h b/lib/read-cache.h\nsimilarity index 100%\nrename from read-cache.h\nrename to lib/read-cache.h\ndiff --git a/rebase-interactive.c b/lib/rebase-interactive.c\nsimilarity index 100%\nrename from rebase-interactive.c\nrename to lib/rebase-interactive.c\ndiff --git a/rebase-interactive.h b/lib/rebase-interactive.h\nsimilarity index 100%\nrename from rebase-interactive.h\nrename to lib/rebase-interactive.h\ndiff --git a/rebase.c b/lib/rebase.c\nsimilarity index 100%\nrename from rebase.c\nrename to lib/rebase.c\ndiff --git a/rebase.h b/lib/rebase.h\nsimilarity index 100%\nrename from rebase.h\nrename to lib/rebase.h\ndiff --git a/ref-filter.c b/lib/ref-filter.c\nsimilarity index 100%\nrename from ref-filter.c\nrename to lib/ref-filter.c\ndiff --git a/ref-filter.h b/lib/ref-filter.h\nsimilarity index 100%\nrename from ref-filter.h\nrename to lib/ref-filter.h\ndiff --git a/reflog-walk.c b/lib/reflog-walk.c\nsimilarity index 100%\nrename from reflog-walk.c\nrename to lib/reflog-walk.c\ndiff --git a/reflog-walk.h b/lib/reflog-walk.h\nsimilarity index 100%\nrename from reflog-walk.h\nrename to lib/reflog-walk.h\ndiff --git a/reflog.c b/lib/reflog.c\nsimilarity index 100%\nrename from reflog.c\nrename to lib/reflog.c\ndiff --git a/reflog.h b/lib/reflog.h\nsimilarity index 100%\nrename from reflog.h\nrename to lib/reflog.h\ndiff --git a/refs.c b/lib/refs.c\nsimilarity index 100%\nrename from refs.c\nrename to lib/refs.c\ndiff --git a/refs.h b/lib/refs.h\nsimilarity index 100%\nrename from refs.h\nrename to lib/refs.h\ndiff --git a/refs/debug.c b/lib/refs/debug.c\nsimilarity index 100%\nrename from refs/debug.c\nrename to lib/refs/debug.c\ndiff --git a/refs/files-backend.c b/lib/refs/files-backend.c\nsimilarity index 100%\nrename from refs/files-backend.c\nrename to lib/refs/files-backend.c\ndiff --git a/refs/iterator.c b/lib/refs/iterator.c\nsimilarity index 100%\nrename from refs/iterator.c\nrename to lib/refs/iterator.c\ndiff --git a/refs/packed-backend.c b/lib/refs/packed-backend.c\nsimilarity index 100%\nrename from refs/packed-backend.c\nrename to lib/refs/packed-backend.c\ndiff --git a/refs/packed-backend.h b/lib/refs/packed-backend.h\nsimilarity index 100%\nrename from refs/packed-backend.h\nrename to lib/refs/packed-backend.h\ndiff --git a/refs/ref-cache.c b/lib/refs/ref-cache.c\nsimilarity index 100%\nrename from refs/ref-cache.c\nrename to lib/refs/ref-cache.c\ndiff --git a/refs/ref-cache.h b/lib/refs/ref-cache.h\nsimilarity index 100%\nrename from refs/ref-cache.h\nrename to lib/refs/ref-cache.h\ndiff --git a/refs/refs-internal.h b/lib/refs/refs-internal.h\nsimilarity index 100%\nrename from refs/refs-internal.h\nrename to lib/refs/refs-internal.h\ndiff --git a/refs/reftable-backend.c b/lib/refs/reftable-backend.c\nsimilarity index 100%\nrename from refs/reftable-backend.c\nrename to lib/refs/reftable-backend.c\ndiff --git a/refspec.c b/lib/refspec.c\nsimilarity index 100%\nrename from refspec.c\nrename to lib/refspec.c\ndiff --git a/refspec.h b/lib/refspec.h\nsimilarity index 100%\nrename from refspec.h\nrename to lib/refspec.h\ndiff --git a/reftable/LICENSE b/lib/reftable/LICENSE\nsimilarity index 100%\nrename from reftable/LICENSE\nrename to lib/reftable/LICENSE\ndiff --git a/reftable/basics.c b/lib/reftable/basics.c\nsimilarity index 100%\nrename from reftable/basics.c\nrename to lib/reftable/basics.c\ndiff --git a/reftable/basics.h b/lib/reftable/basics.h\nsimilarity index 100%\nrename from reftable/basics.h\nrename to lib/reftable/basics.h\ndiff --git a/reftable/block.c b/lib/reftable/block.c\nsimilarity index 100%\nrename from reftable/block.c\nrename to lib/reftable/block.c\ndiff --git a/reftable/block.h b/lib/reftable/block.h\nsimilarity index 100%\nrename from reftable/block.h\nrename to lib/reftable/block.h\ndiff --git a/reftable/blocksource.c b/lib/reftable/blocksource.c\nsimilarity index 100%\nrename from reftable/blocksource.c\nrename to lib/reftable/blocksource.c\ndiff --git a/reftable/blocksource.h b/lib/reftable/blocksource.h\nsimilarity index 100%\nrename from reftable/blocksource.h\nrename to lib/reftable/blocksource.h\ndiff --git a/reftable/constants.h b/lib/reftable/constants.h\nsimilarity index 100%\nrename from reftable/constants.h\nrename to lib/reftable/constants.h\ndiff --git a/reftable/error.c b/lib/reftable/error.c\nsimilarity index 100%\nrename from reftable/error.c\nrename to lib/reftable/error.c\ndiff --git a/reftable/fsck.c b/lib/reftable/fsck.c\nsimilarity index 100%\nrename from reftable/fsck.c\nrename to lib/reftable/fsck.c\ndiff --git a/reftable/iter.c b/lib/reftable/iter.c\nsimilarity index 100%\nrename from reftable/iter.c\nrename to lib/reftable/iter.c\ndiff --git a/reftable/iter.h b/lib/reftable/iter.h\nsimilarity index 100%\nrename from reftable/iter.h\nrename to lib/reftable/iter.h\ndiff --git a/reftable/merged.c b/lib/reftable/merged.c\nsimilarity index 100%\nrename from reftable/merged.c\nrename to lib/reftable/merged.c\ndiff --git a/reftable/merged.h b/lib/reftable/merged.h\nsimilarity index 100%\nrename from reftable/merged.h\nrename to lib/reftable/merged.h\ndiff --git a/reftable/pq.c b/lib/reftable/pq.c\nsimilarity index 100%\nrename from reftable/pq.c\nrename to lib/reftable/pq.c\ndiff --git a/reftable/pq.h b/lib/reftable/pq.h\nsimilarity index 100%\nrename from reftable/pq.h\nrename to lib/reftable/pq.h\ndiff --git a/reftable/record.c b/lib/reftable/record.c\nsimilarity index 100%\nrename from reftable/record.c\nrename to lib/reftable/record.c\ndiff --git a/reftable/record.h b/lib/reftable/record.h\nsimilarity index 100%\nrename from reftable/record.h\nrename to lib/reftable/record.h\ndiff --git a/reftable/reftable-basics.h b/lib/reftable/reftable-basics.h\nsimilarity index 100%\nrename from reftable/reftable-basics.h\nrename to lib/reftable/reftable-basics.h\ndiff --git a/reftable/reftable-block.h b/lib/reftable/reftable-block.h\nsimilarity index 100%\nrename from reftable/reftable-block.h\nrename to lib/reftable/reftable-block.h\ndiff --git a/reftable/reftable-blocksource.h b/lib/reftable/reftable-blocksource.h\nsimilarity index 100%\nrename from reftable/reftable-blocksource.h\nrename to lib/reftable/reftable-blocksource.h\ndiff --git a/reftable/reftable-constants.h b/lib/reftable/reftable-constants.h\nsimilarity index 100%\nrename from reftable/reftable-constants.h\nrename to lib/reftable/reftable-constants.h\ndiff --git a/reftable/reftable-error.h b/lib/reftable/reftable-error.h\nsimilarity index 100%\nrename from reftable/reftable-error.h\nrename to lib/reftable/reftable-error.h\ndiff --git a/reftable/reftable-fsck.h b/lib/reftable/reftable-fsck.h\nsimilarity index 100%\nrename from reftable/reftable-fsck.h\nrename to lib/reftable/reftable-fsck.h\ndiff --git a/reftable/reftable-iterator.h b/lib/reftable/reftable-iterator.h\nsimilarity index 100%\nrename from reftable/reftable-iterator.h\nrename to lib/reftable/reftable-iterator.h\ndiff --git a/reftable/reftable-merged.h b/lib/reftable/reftable-merged.h\nsimilarity index 100%\nrename from reftable/reftable-merged.h\nrename to lib/reftable/reftable-merged.h\ndiff --git a/reftable/reftable-record.h b/lib/reftable/reftable-record.h\nsimilarity index 100%\nrename from reftable/reftable-record.h\nrename to lib/reftable/reftable-record.h\ndiff --git a/reftable/reftable-stack.h b/lib/reftable/reftable-stack.h\nsimilarity index 100%\nrename from reftable/reftable-stack.h\nrename to lib/reftable/reftable-stack.h\ndiff --git a/reftable/reftable-system.h b/lib/reftable/reftable-system.h\nsimilarity index 100%\nrename from reftable/reftable-system.h\nrename to lib/reftable/reftable-system.h\ndiff --git a/reftable/reftable-table.h b/lib/reftable/reftable-table.h\nsimilarity index 100%\nrename from reftable/reftable-table.h\nrename to lib/reftable/reftable-table.h\ndiff --git a/reftable/reftable-writer.h b/lib/reftable/reftable-writer.h\nsimilarity index 100%\nrename from reftable/reftable-writer.h\nrename to lib/reftable/reftable-writer.h\ndiff --git a/reftable/stack.c b/lib/reftable/stack.c\nsimilarity index 100%\nrename from reftable/stack.c\nrename to lib/reftable/stack.c\ndiff --git a/reftable/stack.h b/lib/reftable/stack.h\nsimilarity index 100%\nrename from reftable/stack.h\nrename to lib/reftable/stack.h\ndiff --git a/reftable/system.c b/lib/reftable/system.c\nsimilarity index 100%\nrename from reftable/system.c\nrename to lib/reftable/system.c\ndiff --git a/reftable/system.h b/lib/reftable/system.h\nsimilarity index 100%\nrename from reftable/system.h\nrename to lib/reftable/system.h\ndiff --git a/reftable/table.c b/lib/reftable/table.c\nsimilarity index 100%\nrename from reftable/table.c\nrename to lib/reftable/table.c\ndiff --git a/reftable/table.h b/lib/reftable/table.h\nsimilarity index 100%\nrename from reftable/table.h\nrename to lib/reftable/table.h\ndiff --git a/reftable/tree.c b/lib/reftable/tree.c\nsimilarity index 100%\nrename from reftable/tree.c\nrename to lib/reftable/tree.c\ndiff --git a/reftable/tree.h b/lib/reftable/tree.h\nsimilarity index 100%\nrename from reftable/tree.h\nrename to lib/reftable/tree.h\ndiff --git a/reftable/writer.c b/lib/reftable/writer.c\nsimilarity index 100%\nrename from reftable/writer.c\nrename to lib/reftable/writer.c\ndiff --git a/reftable/writer.h b/lib/reftable/writer.h\nsimilarity index 100%\nrename from reftable/writer.h\nrename to lib/reftable/writer.h\ndiff --git a/remote.c b/lib/remote.c\nsimilarity index 100%\nrename from remote.c\nrename to lib/remote.c\ndiff --git a/remote.h b/lib/remote.h\nsimilarity index 100%\nrename from remote.h\nrename to lib/remote.h\ndiff --git a/repack-cruft.c b/lib/repack-cruft.c\nsimilarity index 100%\nrename from repack-cruft.c\nrename to lib/repack-cruft.c\ndiff --git a/repack-filtered.c b/lib/repack-filtered.c\nsimilarity index 100%\nrename from repack-filtered.c\nrename to lib/repack-filtered.c\ndiff --git a/repack-geometry.c b/lib/repack-geometry.c\nsimilarity index 100%\nrename from repack-geometry.c\nrename to lib/repack-geometry.c\ndiff --git a/repack-midx.c b/lib/repack-midx.c\nsimilarity index 100%\nrename from repack-midx.c\nrename to lib/repack-midx.c\ndiff --git a/repack-promisor.c b/lib/repack-promisor.c\nsimilarity index 100%\nrename from repack-promisor.c\nrename to lib/repack-promisor.c\ndiff --git a/repack.c b/lib/repack.c\nsimilarity index 100%\nrename from repack.c\nrename to lib/repack.c\ndiff --git a/repack.h b/lib/repack.h\nsimilarity index 100%\nrename from repack.h\nrename to lib/repack.h\ndiff --git a/replace-object.c b/lib/replace-object.c\nsimilarity index 100%\nrename from replace-object.c\nrename to lib/replace-object.c\ndiff --git a/replace-object.h b/lib/replace-object.h\nsimilarity index 100%\nrename from replace-object.h\nrename to lib/replace-object.h\ndiff --git a/replay.c b/lib/replay.c\nsimilarity index 100%\nrename from replay.c\nrename to lib/replay.c\ndiff --git a/replay.h b/lib/replay.h\nsimilarity index 100%\nrename from replay.h\nrename to lib/replay.h\ndiff --git a/repo-settings.c b/lib/repo-settings.c\nsimilarity index 100%\nrename from repo-settings.c\nrename to lib/repo-settings.c\ndiff --git a/repo-settings.h b/lib/repo-settings.h\nsimilarity index 100%\nrename from repo-settings.h\nrename to lib/repo-settings.h\ndiff --git a/repository.c b/lib/repository.c\nsimilarity index 100%\nrename from repository.c\nrename to lib/repository.c\ndiff --git a/repository.h b/lib/repository.h\nsimilarity index 100%\nrename from repository.h\nrename to lib/repository.h\ndiff --git a/rerere.c b/lib/rerere.c\nsimilarity index 100%\nrename from rerere.c\nrename to lib/rerere.c\ndiff --git a/rerere.h b/lib/rerere.h\nsimilarity index 100%\nrename from rerere.h\nrename to lib/rerere.h\ndiff --git a/reset.c b/lib/reset.c\nsimilarity index 100%\nrename from reset.c\nrename to lib/reset.c\ndiff --git a/reset.h b/lib/reset.h\nsimilarity index 100%\nrename from reset.h\nrename to lib/reset.h\ndiff --git a/resolve-undo.c b/lib/resolve-undo.c\nsimilarity index 100%\nrename from resolve-undo.c\nrename to lib/resolve-undo.c\ndiff --git a/resolve-undo.h b/lib/resolve-undo.h\nsimilarity index 100%\nrename from resolve-undo.h\nrename to lib/resolve-undo.h\ndiff --git a/revision.c b/lib/revision.c\nsimilarity index 100%\nrename from revision.c\nrename to lib/revision.c\ndiff --git a/revision.h b/lib/revision.h\nsimilarity index 100%\nrename from revision.h\nrename to lib/revision.h\ndiff --git a/run-command.c b/lib/run-command.c\nsimilarity index 100%\nrename from run-command.c\nrename to lib/run-command.c\ndiff --git a/run-command.h b/lib/run-command.h\nsimilarity index 100%\nrename from run-command.h\nrename to lib/run-command.h\ndiff --git a/sane-ctype.h b/lib/sane-ctype.h\nsimilarity index 100%\nrename from sane-ctype.h\nrename to lib/sane-ctype.h\ndiff --git a/send-pack.c b/lib/send-pack.c\nsimilarity index 100%\nrename from send-pack.c\nrename to lib/send-pack.c\ndiff --git a/send-pack.h b/lib/send-pack.h\nsimilarity index 100%\nrename from send-pack.h\nrename to lib/send-pack.h\ndiff --git a/sequencer.c b/lib/sequencer.c\nsimilarity index 100%\nrename from sequencer.c\nrename to lib/sequencer.c\ndiff --git a/sequencer.h b/lib/sequencer.h\nsimilarity index 100%\nrename from sequencer.h\nrename to lib/sequencer.h\ndiff --git a/serve.c b/lib/serve.c\nsimilarity index 100%\nrename from serve.c\nrename to lib/serve.c\ndiff --git a/serve.h b/lib/serve.h\nsimilarity index 100%\nrename from serve.h\nrename to lib/serve.h\ndiff --git a/server-info.c b/lib/server-info.c\nsimilarity index 100%\nrename from server-info.c\nrename to lib/server-info.c\ndiff --git a/server-info.h b/lib/server-info.h\nsimilarity index 100%\nrename from server-info.h\nrename to lib/server-info.h\ndiff --git a/setup.c b/lib/setup.c\nsimilarity index 100%\nrename from setup.c\nrename to lib/setup.c\ndiff --git a/setup.h b/lib/setup.h\nsimilarity index 100%\nrename from setup.h\nrename to lib/setup.h\ndiff --git a/sha1/openssl.h b/lib/sha1/openssl.h\nsimilarity index 100%\nrename from sha1/openssl.h\nrename to lib/sha1/openssl.h\ndiff --git a/sha1collisiondetection b/lib/sha1collisiondetection\nsimilarity index 100%\nrename from sha1collisiondetection\nrename to lib/sha1collisiondetection\ndiff --git a/sha1dc/.gitattributes b/lib/sha1dc/.gitattributes\nsimilarity index 100%\nrename from sha1dc/.gitattributes\nrename to lib/sha1dc/.gitattributes\ndiff --git a/sha1dc/LICENSE.txt b/lib/sha1dc/LICENSE.txt\nsimilarity index 100%\nrename from sha1dc/LICENSE.txt\nrename to lib/sha1dc/LICENSE.txt\ndiff --git a/sha1dc/sha1.c b/lib/sha1dc/sha1.c\nsimilarity index 100%\nrename from sha1dc/sha1.c\nrename to lib/sha1dc/sha1.c\ndiff --git a/sha1dc/sha1.h b/lib/sha1dc/sha1.h\nsimilarity index 100%\nrename from sha1dc/sha1.h\nrename to lib/sha1dc/sha1.h\ndiff --git a/sha1dc/ubc_check.c b/lib/sha1dc/ubc_check.c\nsimilarity index 100%\nrename from sha1dc/ubc_check.c\nrename to lib/sha1dc/ubc_check.c\ndiff --git a/sha1dc/ubc_check.h b/lib/sha1dc/ubc_check.h\nsimilarity index 100%\nrename from sha1dc/ubc_check.h\nrename to lib/sha1dc/ubc_check.h\ndiff --git a/sha1dc_git.c b/lib/sha1dc_git.c\nsimilarity index 100%\nrename from sha1dc_git.c\nrename to lib/sha1dc_git.c\ndiff --git a/sha1dc_git.h b/lib/sha1dc_git.h\nsimilarity index 100%\nrename from sha1dc_git.h\nrename to lib/sha1dc_git.h\ndiff --git a/sha256/block/sha256.c b/lib/sha256/block/sha256.c\nsimilarity index 100%\nrename from sha256/block/sha256.c\nrename to lib/sha256/block/sha256.c\ndiff --git a/sha256/block/sha256.h b/lib/sha256/block/sha256.h\nsimilarity index 100%\nrename from sha256/block/sha256.h\nrename to lib/sha256/block/sha256.h\ndiff --git a/sha256/gcrypt.h b/lib/sha256/gcrypt.h\nsimilarity index 100%\nrename from sha256/gcrypt.h\nrename to lib/sha256/gcrypt.h\ndiff --git a/sha256/nettle.h b/lib/sha256/nettle.h\nsimilarity index 100%\nrename from sha256/nettle.h\nrename to lib/sha256/nettle.h\ndiff --git a/sha256/openssl.h b/lib/sha256/openssl.h\nsimilarity index 100%\nrename from sha256/openssl.h\nrename to lib/sha256/openssl.h\ndiff --git a/shallow.c b/lib/shallow.c\nsimilarity index 100%\nrename from shallow.c\nrename to lib/shallow.c\ndiff --git a/shallow.h b/lib/shallow.h\nsimilarity index 100%\nrename from shallow.h\nrename to lib/shallow.h\ndiff --git a/shortlog.h b/lib/shortlog.h\nsimilarity index 100%\nrename from shortlog.h\nrename to lib/shortlog.h\ndiff --git a/sideband.c b/lib/sideband.c\nsimilarity index 100%\nrename from sideband.c\nrename to lib/sideband.c\ndiff --git a/sideband.h b/lib/sideband.h\nsimilarity index 100%\nrename from sideband.h\nrename to lib/sideband.h\ndiff --git a/sigchain.c b/lib/sigchain.c\nsimilarity index 100%\nrename from sigchain.c\nrename to lib/sigchain.c\ndiff --git a/sigchain.h b/lib/sigchain.h\nsimilarity index 100%\nrename from sigchain.h\nrename to lib/sigchain.h\ndiff --git a/simple-ipc.h b/lib/simple-ipc.h\nsimilarity index 100%\nrename from simple-ipc.h\nrename to lib/simple-ipc.h\ndiff --git a/sparse-index.c b/lib/sparse-index.c\nsimilarity index 100%\nrename from sparse-index.c\nrename to lib/sparse-index.c\ndiff --git a/sparse-index.h b/lib/sparse-index.h\nsimilarity index 100%\nrename from sparse-index.h\nrename to lib/sparse-index.h\ndiff --git a/split-index.c b/lib/split-index.c\nsimilarity index 100%\nrename from split-index.c\nrename to lib/split-index.c\ndiff --git a/split-index.h b/lib/split-index.h\nsimilarity index 100%\nrename from split-index.h\nrename to lib/split-index.h\ndiff --git a/stable-qsort.c b/lib/stable-qsort.c\nsimilarity index 100%\nrename from stable-qsort.c\nrename to lib/stable-qsort.c\ndiff --git a/statinfo.c b/lib/statinfo.c\nsimilarity index 100%\nrename from statinfo.c\nrename to lib/statinfo.c\ndiff --git a/statinfo.h b/lib/statinfo.h\nsimilarity index 100%\nrename from statinfo.h\nrename to lib/statinfo.h\ndiff --git a/strbuf.c b/lib/strbuf.c\nsimilarity index 100%\nrename from strbuf.c\nrename to lib/strbuf.c\ndiff --git a/strbuf.h b/lib/strbuf.h\nsimilarity index 100%\nrename from strbuf.h\nrename to lib/strbuf.h\ndiff --git a/string-list.c b/lib/string-list.c\nsimilarity index 100%\nrename from string-list.c\nrename to lib/string-list.c\ndiff --git a/string-list.h b/lib/string-list.h\nsimilarity index 100%\nrename from string-list.h\nrename to lib/string-list.h\ndiff --git a/strmap.c b/lib/strmap.c\nsimilarity index 100%\nrename from strmap.c\nrename to lib/strmap.c\ndiff --git a/strmap.h b/lib/strmap.h\nsimilarity index 100%\nrename from strmap.h\nrename to lib/strmap.h\ndiff --git a/strvec.c b/lib/strvec.c\nsimilarity index 100%\nrename from strvec.c\nrename to lib/strvec.c\ndiff --git a/strvec.h b/lib/strvec.h\nsimilarity index 100%\nrename from strvec.h\nrename to lib/strvec.h\ndiff --git a/sub-process.c b/lib/sub-process.c\nsimilarity index 100%\nrename from sub-process.c\nrename to lib/sub-process.c\ndiff --git a/sub-process.h b/lib/sub-process.h\nsimilarity index 100%\nrename from sub-process.h\nrename to lib/sub-process.h\ndiff --git a/submodule-config.c b/lib/submodule-config.c\nsimilarity index 100%\nrename from submodule-config.c\nrename to lib/submodule-config.c\ndiff --git a/submodule-config.h b/lib/submodule-config.h\nsimilarity index 100%\nrename from submodule-config.h\nrename to lib/submodule-config.h\ndiff --git a/submodule.c b/lib/submodule.c\nsimilarity index 100%\nrename from submodule.c\nrename to lib/submodule.c\ndiff --git a/submodule.h b/lib/submodule.h\nsimilarity index 100%\nrename from submodule.h\nrename to lib/submodule.h\ndiff --git a/symlinks.c b/lib/symlinks.c\nsimilarity index 100%\nrename from symlinks.c\nrename to lib/symlinks.c\ndiff --git a/symlinks.h b/lib/symlinks.h\nsimilarity index 100%\nrename from symlinks.h\nrename to lib/symlinks.h\ndiff --git a/tag.c b/lib/tag.c\nsimilarity index 100%\nrename from tag.c\nrename to lib/tag.c\ndiff --git a/tag.h b/lib/tag.h\nsimilarity index 100%\nrename from tag.h\nrename to lib/tag.h\ndiff --git a/tar.h b/lib/tar.h\nsimilarity index 100%\nrename from tar.h\nrename to lib/tar.h\ndiff --git a/tempfile.c b/lib/tempfile.c\nsimilarity index 100%\nrename from tempfile.c\nrename to lib/tempfile.c\ndiff --git a/tempfile.h b/lib/tempfile.h\nsimilarity index 100%\nrename from tempfile.h\nrename to lib/tempfile.h\ndiff --git a/thread-utils.c b/lib/thread-utils.c\nsimilarity index 100%\nrename from thread-utils.c\nrename to lib/thread-utils.c\ndiff --git a/thread-utils.h b/lib/thread-utils.h\nsimilarity index 100%\nrename from thread-utils.h\nrename to lib/thread-utils.h\ndiff --git a/tmp-objdir.c b/lib/tmp-objdir.c\nsimilarity index 100%\nrename from tmp-objdir.c\nrename to lib/tmp-objdir.c\ndiff --git a/tmp-objdir.h b/lib/tmp-objdir.h\nsimilarity index 100%\nrename from tmp-objdir.h\nrename to lib/tmp-objdir.h\ndiff --git a/trace.c b/lib/trace.c\nsimilarity index 100%\nrename from trace.c\nrename to lib/trace.c\ndiff --git a/trace.h b/lib/trace.h\nsimilarity index 100%\nrename from trace.h\nrename to lib/trace.h\ndiff --git a/trace2.c b/lib/trace2.c\nsimilarity index 100%\nrename from trace2.c\nrename to lib/trace2.c\ndiff --git a/trace2.h b/lib/trace2.h\nsimilarity index 100%\nrename from trace2.h\nrename to lib/trace2.h\ndiff --git a/trace2/tr2_cfg.c b/lib/trace2/tr2_cfg.c\nsimilarity index 100%\nrename from trace2/tr2_cfg.c\nrename to lib/trace2/tr2_cfg.c\ndiff --git a/trace2/tr2_cfg.h b/lib/trace2/tr2_cfg.h\nsimilarity index 100%\nrename from trace2/tr2_cfg.h\nrename to lib/trace2/tr2_cfg.h\ndiff --git a/trace2/tr2_cmd_name.c b/lib/trace2/tr2_cmd_name.c\nsimilarity index 100%\nrename from trace2/tr2_cmd_name.c\nrename to lib/trace2/tr2_cmd_name.c\ndiff --git a/trace2/tr2_cmd_name.h b/lib/trace2/tr2_cmd_name.h\nsimilarity index 100%\nrename from trace2/tr2_cmd_name.h\nrename to lib/trace2/tr2_cmd_name.h\ndiff --git a/trace2/tr2_ctr.c b/lib/trace2/tr2_ctr.c\nsimilarity index 100%\nrename from trace2/tr2_ctr.c\nrename to lib/trace2/tr2_ctr.c\ndiff --git a/trace2/tr2_ctr.h b/lib/trace2/tr2_ctr.h\nsimilarity index 100%\nrename from trace2/tr2_ctr.h\nrename to lib/trace2/tr2_ctr.h\ndiff --git a/trace2/tr2_dst.c b/lib/trace2/tr2_dst.c\nsimilarity index 100%\nrename from trace2/tr2_dst.c\nrename to lib/trace2/tr2_dst.c\ndiff --git a/trace2/tr2_dst.h b/lib/trace2/tr2_dst.h\nsimilarity index 100%\nrename from trace2/tr2_dst.h\nrename to lib/trace2/tr2_dst.h\ndiff --git a/trace2/tr2_sid.c b/lib/trace2/tr2_sid.c\nsimilarity index 100%\nrename from trace2/tr2_sid.c\nrename to lib/trace2/tr2_sid.c\ndiff --git a/trace2/tr2_sid.h b/lib/trace2/tr2_sid.h\nsimilarity index 100%\nrename from trace2/tr2_sid.h\nrename to lib/trace2/tr2_sid.h\ndiff --git a/trace2/tr2_sysenv.c b/lib/trace2/tr2_sysenv.c\nsimilarity index 100%\nrename from trace2/tr2_sysenv.c\nrename to lib/trace2/tr2_sysenv.c\ndiff --git a/trace2/tr2_sysenv.h b/lib/trace2/tr2_sysenv.h\nsimilarity index 100%\nrename from trace2/tr2_sysenv.h\nrename to lib/trace2/tr2_sysenv.h\ndiff --git a/trace2/tr2_tbuf.c b/lib/trace2/tr2_tbuf.c\nsimilarity index 100%\nrename from trace2/tr2_tbuf.c\nrename to lib/trace2/tr2_tbuf.c\ndiff --git a/trace2/tr2_tbuf.h b/lib/trace2/tr2_tbuf.h\nsimilarity index 100%\nrename from trace2/tr2_tbuf.h\nrename to lib/trace2/tr2_tbuf.h\ndiff --git a/trace2/tr2_tgt.h b/lib/trace2/tr2_tgt.h\nsimilarity index 100%\nrename from trace2/tr2_tgt.h\nrename to lib/trace2/tr2_tgt.h\ndiff --git a/trace2/tr2_tgt_event.c b/lib/trace2/tr2_tgt_event.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_event.c\nrename to lib/trace2/tr2_tgt_event.c\ndiff --git a/trace2/tr2_tgt_normal.c b/lib/trace2/tr2_tgt_normal.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_normal.c\nrename to lib/trace2/tr2_tgt_normal.c\ndiff --git a/trace2/tr2_tgt_perf.c b/lib/trace2/tr2_tgt_perf.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_perf.c\nrename to lib/trace2/tr2_tgt_perf.c\ndiff --git a/trace2/tr2_tls.c b/lib/trace2/tr2_tls.c\nsimilarity index 100%\nrename from trace2/tr2_tls.c\nrename to lib/trace2/tr2_tls.c\ndiff --git a/trace2/tr2_tls.h b/lib/trace2/tr2_tls.h\nsimilarity index 100%\nrename from trace2/tr2_tls.h\nrename to lib/trace2/tr2_tls.h\ndiff --git a/trace2/tr2_tmr.c b/lib/trace2/tr2_tmr.c\nsimilarity index 100%\nrename from trace2/tr2_tmr.c\nrename to lib/trace2/tr2_tmr.c\ndiff --git a/trace2/tr2_tmr.h b/lib/trace2/tr2_tmr.h\nsimilarity index 100%\nrename from trace2/tr2_tmr.h\nrename to lib/trace2/tr2_tmr.h\ndiff --git a/trailer.c b/lib/trailer.c\nsimilarity index 100%\nrename from trailer.c\nrename to lib/trailer.c\ndiff --git a/trailer.h b/lib/trailer.h\nsimilarity index 100%\nrename from trailer.h\nrename to lib/trailer.h\ndiff --git a/transport-helper.c b/lib/transport-helper.c\nsimilarity index 100%\nrename from transport-helper.c\nrename to lib/transport-helper.c\ndiff --git a/transport-internal.h b/lib/transport-internal.h\nsimilarity index 100%\nrename from transport-internal.h\nrename to lib/transport-internal.h\ndiff --git a/transport.c b/lib/transport.c\nsimilarity index 100%\nrename from transport.c\nrename to lib/transport.c\ndiff --git a/transport.h b/lib/transport.h\nsimilarity index 100%\nrename from transport.h\nrename to lib/transport.h\ndiff --git a/tree-diff.c b/lib/tree-diff.c\nsimilarity index 100%\nrename from tree-diff.c\nrename to lib/tree-diff.c\ndiff --git a/tree-walk.c b/lib/tree-walk.c\nsimilarity index 100%\nrename from tree-walk.c\nrename to lib/tree-walk.c\ndiff --git a/tree-walk.h b/lib/tree-walk.h\nsimilarity index 100%\nrename from tree-walk.h\nrename to lib/tree-walk.h\ndiff --git a/tree.c b/lib/tree.c\nsimilarity index 100%\nrename from tree.c\nrename to lib/tree.c\ndiff --git a/tree.h b/lib/tree.h\nsimilarity index 100%\nrename from tree.h\nrename to lib/tree.h\ndiff --git a/unicode-width.h b/lib/unicode-width.h\nsimilarity index 100%\nrename from unicode-width.h\nrename to lib/unicode-width.h\ndiff --git a/unix-socket.c b/lib/unix-socket.c\nsimilarity index 100%\nrename from unix-socket.c\nrename to lib/unix-socket.c\ndiff --git a/unix-socket.h b/lib/unix-socket.h\nsimilarity index 100%\nrename from unix-socket.h\nrename to lib/unix-socket.h\ndiff --git a/unix-stream-server.c b/lib/unix-stream-server.c\nsimilarity index 100%\nrename from unix-stream-server.c\nrename to lib/unix-stream-server.c\ndiff --git a/unix-stream-server.h b/lib/unix-stream-server.h\nsimilarity index 100%\nrename from unix-stream-server.h\nrename to lib/unix-stream-server.h\ndiff --git a/unpack-trees.c b/lib/unpack-trees.c\nsimilarity index 100%\nrename from unpack-trees.c\nrename to lib/unpack-trees.c\ndiff --git a/unpack-trees.h b/lib/unpack-trees.h\nsimilarity index 100%\nrename from unpack-trees.h\nrename to lib/unpack-trees.h\ndiff --git a/upload-pack.c b/lib/upload-pack.c\nsimilarity index 100%\nrename from upload-pack.c\nrename to lib/upload-pack.c\ndiff --git a/upload-pack.h b/lib/upload-pack.h\nsimilarity index 100%\nrename from upload-pack.h\nrename to lib/upload-pack.h\ndiff --git a/url.c b/lib/url.c\nsimilarity index 100%\nrename from url.c\nrename to lib/url.c\ndiff --git a/url.h b/lib/url.h\nsimilarity index 100%\nrename from url.h\nrename to lib/url.h\ndiff --git a/urlmatch.c b/lib/urlmatch.c\nsimilarity index 100%\nrename from urlmatch.c\nrename to lib/urlmatch.c\ndiff --git a/urlmatch.h b/lib/urlmatch.h\nsimilarity index 100%\nrename from urlmatch.h\nrename to lib/urlmatch.h\ndiff --git a/usage.c b/lib/usage.c\nsimilarity index 100%\nrename from usage.c\nrename to lib/usage.c\ndiff --git a/userdiff.c b/lib/userdiff.c\nsimilarity index 100%\nrename from userdiff.c\nrename to lib/userdiff.c\ndiff --git a/userdiff.h b/lib/userdiff.h\nsimilarity index 100%\nrename from userdiff.h\nrename to lib/userdiff.h\ndiff --git a/utf8.c b/lib/utf8.c\nsimilarity index 100%\nrename from utf8.c\nrename to lib/utf8.c\ndiff --git a/utf8.h b/lib/utf8.h\nsimilarity index 100%\nrename from utf8.h\nrename to lib/utf8.h\ndiff --git a/varint.c b/lib/varint.c\nsimilarity index 100%\nrename from varint.c\nrename to lib/varint.c\ndiff --git a/varint.h b/lib/varint.h\nsimilarity index 100%\nrename from varint.h\nrename to lib/varint.h\ndiff --git a/version-def.h.in b/lib/version-def.h.in\nsimilarity index 100%\nrename from version-def.h.in\nrename to lib/version-def.h.in\ndiff --git a/version.c b/lib/version.c\nsimilarity index 100%\nrename from version.c\nrename to lib/version.c\ndiff --git a/version.h b/lib/version.h\nsimilarity index 100%\nrename from version.h\nrename to lib/version.h\ndiff --git a/versioncmp.c b/lib/versioncmp.c\nsimilarity index 100%\nrename from versioncmp.c\nrename to lib/versioncmp.c\ndiff --git a/versioncmp.h b/lib/versioncmp.h\nsimilarity index 100%\nrename from versioncmp.h\nrename to lib/versioncmp.h\ndiff --git a/walker.c b/lib/walker.c\nsimilarity index 100%\nrename from walker.c\nrename to lib/walker.c\ndiff --git a/walker.h b/lib/walker.h\nsimilarity index 100%\nrename from walker.h\nrename to lib/walker.h\ndiff --git a/wildmatch.c b/lib/wildmatch.c\nsimilarity index 100%\nrename from wildmatch.c\nrename to lib/wildmatch.c\ndiff --git a/wildmatch.h b/lib/wildmatch.h\nsimilarity index 100%\nrename from wildmatch.h\nrename to lib/wildmatch.h\ndiff --git a/worktree.c b/lib/worktree.c\nsimilarity index 100%\nrename from worktree.c\nrename to lib/worktree.c\ndiff --git a/worktree.h b/lib/worktree.h\nsimilarity index 100%\nrename from worktree.h\nrename to lib/worktree.h\ndiff --git a/wrapper.c b/lib/wrapper.c\nsimilarity index 100%\nrename from wrapper.c\nrename to lib/wrapper.c\ndiff --git a/wrapper.h b/lib/wrapper.h\nsimilarity index 100%\nrename from wrapper.h\nrename to lib/wrapper.h\ndiff --git a/write-or-die.c b/lib/write-or-die.c\nsimilarity index 100%\nrename from write-or-die.c\nrename to lib/write-or-die.c\ndiff --git a/write-or-die.h b/lib/write-or-die.h\nsimilarity index 100%\nrename from write-or-die.h\nrename to lib/write-or-die.h\ndiff --git a/ws.c b/lib/ws.c\nsimilarity index 100%\nrename from ws.c\nrename to lib/ws.c\ndiff --git a/ws.h b/lib/ws.h\nsimilarity index 100%\nrename from ws.h\nrename to lib/ws.h\ndiff --git a/wt-status.c b/lib/wt-status.c\nsimilarity index 100%\nrename from wt-status.c\nrename to lib/wt-status.c\ndiff --git a/wt-status.h b/lib/wt-status.h\nsimilarity index 100%\nrename from wt-status.h\nrename to lib/wt-status.h\ndiff --git a/xdiff-interface.c b/lib/xdiff-interface.c\nsimilarity index 100%\nrename from xdiff-interface.c\nrename to lib/xdiff-interface.c\ndiff --git a/xdiff-interface.h b/lib/xdiff-interface.h\nsimilarity index 100%\nrename from xdiff-interface.h\nrename to lib/xdiff-interface.h\ndiff --git a/xdiff/xdiff.h b/lib/xdiff/xdiff.h\nsimilarity index 100%\nrename from xdiff/xdiff.h\nrename to lib/xdiff/xdiff.h\ndiff --git a/xdiff/xdiffi.c b/lib/xdiff/xdiffi.c\nsimilarity index 100%\nrename from xdiff/xdiffi.c\nrename to lib/xdiff/xdiffi.c\ndiff --git a/xdiff/xdiffi.h b/lib/xdiff/xdiffi.h\nsimilarity index 100%\nrename from xdiff/xdiffi.h\nrename to lib/xdiff/xdiffi.h\ndiff --git a/xdiff/xemit.c b/lib/xdiff/xemit.c\nsimilarity index 100%\nrename from xdiff/xemit.c\nrename to lib/xdiff/xemit.c\ndiff --git a/xdiff/xemit.h b/lib/xdiff/xemit.h\nsimilarity index 100%\nrename from xdiff/xemit.h\nrename to lib/xdiff/xemit.h\ndiff --git a/xdiff/xhistogram.c b/lib/xdiff/xhistogram.c\nsimilarity index 100%\nrename from xdiff/xhistogram.c\nrename to lib/xdiff/xhistogram.c\ndiff --git a/xdiff/xinclude.h b/lib/xdiff/xinclude.h\nsimilarity index 100%\nrename from xdiff/xinclude.h\nrename to lib/xdiff/xinclude.h\ndiff --git a/xdiff/xmacros.h b/lib/xdiff/xmacros.h\nsimilarity index 100%\nrename from xdiff/xmacros.h\nrename to lib/xdiff/xmacros.h\ndiff --git a/xdiff/xmerge.c b/lib/xdiff/xmerge.c\nsimilarity index 100%\nrename from xdiff/xmerge.c\nrename to lib/xdiff/xmerge.c\ndiff --git a/xdiff/xpatience.c b/lib/xdiff/xpatience.c\nsimilarity index 100%\nrename from xdiff/xpatience.c\nrename to lib/xdiff/xpatience.c\ndiff --git a/xdiff/xprepare.c b/lib/xdiff/xprepare.c\nsimilarity index 100%\nrename from xdiff/xprepare.c\nrename to lib/xdiff/xprepare.c\ndiff --git a/xdiff/xprepare.h b/lib/xdiff/xprepare.h\nsimilarity index 100%\nrename from xdiff/xprepare.h\nrename to lib/xdiff/xprepare.h\ndiff --git a/xdiff/xtypes.h b/lib/xdiff/xtypes.h\nsimilarity index 100%\nrename from xdiff/xtypes.h\nrename to lib/xdiff/xtypes.h\ndiff --git a/xdiff/xutils.c b/lib/xdiff/xutils.c\nsimilarity index 100%\nrename from xdiff/xutils.c\nrename to lib/xdiff/xutils.c\ndiff --git a/xdiff/xutils.h b/lib/xdiff/xutils.h\nsimilarity index 100%\nrename from xdiff/xutils.h\nrename to lib/xdiff/xutils.h\ndiff --git a/meson.build b/meson.build\nindex 11488623bf..c83b7a94d0 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -272,288 +272,288 @@ version_gen_environment.set('GIT_VERSION', get_option('version'))\n compiler = meson.get_compiler('c')\n \n compat_sources = [\n-  'compat/nonblock.c',\n-  'compat/obstack.c',\n-  'compat/open.c',\n-  'compat/terminal.c',\n+  'lib/compat/nonblock.c',\n+  'lib/compat/obstack.c',\n+  'lib/compat/open.c',\n+  'lib/compat/terminal.c',\n ]\n \n libgit_sources = [\n-  'abspath.c',\n-  'add-interactive.c',\n-  'add-patch.c',\n-  'advice.c',\n-  'alias.c',\n-  'alloc.c',\n-  'apply.c',\n-  'archive-tar.c',\n-  'archive-zip.c',\n-  'archive.c',\n-  'attr.c',\n-  'base85.c',\n-  'bisect.c',\n-  'blame.c',\n-  'blob.c',\n-  'bloom.c',\n-  'branch.c',\n-  'bundle-uri.c',\n-  'bundle.c',\n-  'cache-tree.c',\n-  'cbtree.c',\n-  'chdir-notify.c',\n-  'checkout.c',\n-  'chunk-format.c',\n-  'color.c',\n-  'column.c',\n-  'combine-diff.c',\n-  'commit-graph.c',\n-  'commit-reach.c',\n-  'commit.c',\n-  'common-exit.c',\n-  'common-init.c',\n-  'compiler-tricks/not-constant.c',\n-  'config.c',\n-  'connect.c',\n-  'connected.c',\n-  'convert.c',\n-  'copy.c',\n-  'credential.c',\n-  'csum-file.c',\n-  'ctype.c',\n-  'date.c',\n-  'decorate.c',\n-  'delta-islands.c',\n-  'diagnose.c',\n-  'diff-delta.c',\n-  'diff-merges.c',\n-  'diff-lib.c',\n-  'diff-no-index.c',\n-  'diff.c',\n-  'diffcore-break.c',\n-  'diffcore-delta.c',\n-  'diffcore-order.c',\n-  'diffcore-pickaxe.c',\n-  'diffcore-rename.c',\n-  'diffcore-rotate.c',\n-  'dir-iterator.c',\n-  'dir.c',\n-  'editor.c',\n-  'entry.c',\n-  'environment.c',\n-  'ewah/bitmap.c',\n-  'ewah/ewah_bitmap.c',\n-  'ewah/ewah_io.c',\n-  'ewah/ewah_rlw.c',\n-  'exec-cmd.c',\n-  'fetch-negotiator.c',\n-  'fetch-pack.c',\n-  'fmt-merge-msg.c',\n-  'fsck.c',\n-  'fsmonitor.c',\n-  'fsmonitor-ipc.c',\n-  'fsmonitor-settings.c',\n-  'gettext.c',\n-  'git-zlib.c',\n-  'gpg-interface.c',\n-  'graph.c',\n-  'grep.c',\n-  'hash-lookup.c',\n-  'hash.c',\n-  'hashmap.c',\n-  'help.c',\n-  'hex.c',\n-  'hex-ll.c',\n-  'hook.c',\n-  'ident.c',\n-  'json-writer.c',\n-  'kwset.c',\n-  'levenshtein.c',\n-  'line-log.c',\n-  'line-range.c',\n-  'linear-assignment.c',\n-  'list-objects-filter-options.c',\n-  'list-objects-filter.c',\n-  'list-objects.c',\n-  'lockfile.c',\n-  'log-tree.c',\n-  'loose.c',\n-  'ls-refs.c',\n-  'mailinfo.c',\n-  'mailmap.c',\n-  'match-trees.c',\n-  'mem-pool.c',\n-  'merge-blobs.c',\n-  'merge-ll.c',\n-  'merge-ort.c',\n-  'merge-ort-wrappers.c',\n-  'merge.c',\n-  'midx.c',\n-  'midx-write.c',\n-  'name-hash.c',\n-  'negotiator/default.c',\n-  'negotiator/noop.c',\n-  'negotiator/skipping.c',\n-  'notes-cache.c',\n-  'notes-merge.c',\n-  'notes-utils.c',\n-  'notes.c',\n-  'object-file-convert.c',\n-  'object-file.c',\n-  'object-name.c',\n-  'object.c',\n-  'odb.c',\n-  'odb/source.c',\n-  'odb/source-files.c',\n-  'odb/streaming.c',\n-  'oid-array.c',\n-  'oidmap.c',\n-  'oidset.c',\n-  'oidtree.c',\n-  'pack-bitmap-write.c',\n-  'pack-bitmap.c',\n-  'pack-check.c',\n-  'pack-mtimes.c',\n-  'pack-objects.c',\n-  'pack-refs.c',\n-  'pack-revindex.c',\n-  'pack-write.c',\n-  'packfile.c',\n-  'pager.c',\n-  'parallel-checkout.c',\n-  'parse.c',\n-  'parse-options-cb.c',\n-  'parse-options.c',\n-  'patch-delta.c',\n-  'patch-ids.c',\n-  'path.c',\n-  'path-walk.c',\n-  'pathspec.c',\n-  'pkt-line.c',\n-  'preload-index.c',\n-  'pretty.c',\n-  'prio-queue.c',\n-  'progress.c',\n-  'promisor-remote.c',\n-  'prompt.c',\n-  'protocol.c',\n-  'protocol-caps.c',\n-  'prune-packed.c',\n-  'pseudo-merge.c',\n-  'quote.c',\n-  'range-diff.c',\n-  'reachable.c',\n-  'read-cache.c',\n-  'rebase-interactive.c',\n-  'rebase.c',\n-  'ref-filter.c',\n-  'reflog-walk.c',\n-  'reflog.c',\n-  'refs.c',\n-  'refs/debug.c',\n-  'refs/files-backend.c',\n-  'refs/reftable-backend.c',\n-  'refs/iterator.c',\n-  'refs/packed-backend.c',\n-  'refs/ref-cache.c',\n-  'refspec.c',\n-  'reftable/basics.c',\n-  'reftable/error.c',\n-  'reftable/block.c',\n-  'reftable/blocksource.c',\n-  'reftable/fsck.c',\n-  'reftable/iter.c',\n-  'reftable/merged.c',\n-  'reftable/pq.c',\n-  'reftable/record.c',\n-  'reftable/stack.c',\n-  'reftable/system.c',\n-  'reftable/table.c',\n-  'reftable/tree.c',\n-  'reftable/writer.c',\n-  'remote.c',\n-  'repack.c',\n-  'repack-cruft.c',\n-  'repack-filtered.c',\n-  'repack-geometry.c',\n-  'repack-midx.c',\n-  'repack-promisor.c',\n-  'replace-object.c',\n-  'replay.c',\n-  'repo-settings.c',\n-  'repository.c',\n-  'rerere.c',\n-  'reset.c',\n-  'resolve-undo.c',\n-  'revision.c',\n-  'run-command.c',\n-  'send-pack.c',\n-  'sequencer.c',\n-  'serve.c',\n-  'server-info.c',\n-  'setup.c',\n-  'shallow.c',\n-  'sideband.c',\n-  'sigchain.c',\n-  'sparse-index.c',\n-  'split-index.c',\n-  'stable-qsort.c',\n-  'statinfo.c',\n-  'strbuf.c',\n-  'string-list.c',\n-  'strmap.c',\n-  'strvec.c',\n-  'sub-process.c',\n-  'submodule-config.c',\n-  'submodule.c',\n-  'symlinks.c',\n-  'tag.c',\n-  'tempfile.c',\n-  'thread-utils.c',\n-  'tmp-objdir.c',\n-  'trace.c',\n-  'trace2.c',\n-  'trace2/tr2_cfg.c',\n-  'trace2/tr2_cmd_name.c',\n-  'trace2/tr2_ctr.c',\n-  'trace2/tr2_dst.c',\n-  'trace2/tr2_sid.c',\n-  'trace2/tr2_sysenv.c',\n-  'trace2/tr2_tbuf.c',\n-  'trace2/tr2_tgt_event.c',\n-  'trace2/tr2_tgt_normal.c',\n-  'trace2/tr2_tgt_perf.c',\n-  'trace2/tr2_tls.c',\n-  'trace2/tr2_tmr.c',\n-  'trailer.c',\n-  'transport-helper.c',\n-  'transport.c',\n-  'tree-diff.c',\n-  'tree-walk.c',\n-  'tree.c',\n-  'unpack-trees.c',\n-  'upload-pack.c',\n-  'url.c',\n-  'urlmatch.c',\n-  'usage.c',\n-  'userdiff.c',\n-  'utf8.c',\n-  'version.c',\n-  'versioncmp.c',\n-  'walker.c',\n-  'wildmatch.c',\n-  'worktree.c',\n-  'wrapper.c',\n-  'write-or-die.c',\n-  'ws.c',\n-  'wt-status.c',\n-  'xdiff-interface.c',\n-  'xdiff/xdiffi.c',\n-  'xdiff/xemit.c',\n-  'xdiff/xhistogram.c',\n-  'xdiff/xmerge.c',\n-  'xdiff/xpatience.c',\n-  'xdiff/xprepare.c',\n-  'xdiff/xutils.c',\n+  'lib/abspath.c',\n+  'lib/add-interactive.c',\n+  'lib/add-patch.c',\n+  'lib/advice.c',\n+  'lib/alias.c',\n+  'lib/alloc.c',\n+  'lib/apply.c',\n+  'lib/archive-tar.c',\n+  'lib/archive-zip.c',\n+  'lib/archive.c',\n+  'lib/attr.c',\n+  'lib/base85.c',\n+  'lib/bisect.c',\n+  'lib/blame.c',\n+  'lib/blob.c',\n+  'lib/bloom.c',\n+  'lib/branch.c',\n+  'lib/bundle-uri.c',\n+  'lib/bundle.c',\n+  'lib/cache-tree.c',\n+  'lib/cbtree.c',\n+  'lib/chdir-notify.c',\n+  'lib/checkout.c',\n+  'lib/chunk-format.c',\n+  'lib/color.c',\n+  'lib/column.c',\n+  'lib/combine-diff.c',\n+  'lib/commit-graph.c',\n+  'lib/commit-reach.c',\n+  'lib/commit.c',\n+  'lib/common-exit.c',\n+  'lib/common-init.c',\n+  'lib/compiler-tricks/not-constant.c',\n+  'lib/config.c',\n+  'lib/connect.c',\n+  'lib/connected.c',\n+  'lib/convert.c',\n+  'lib/copy.c',\n+  'lib/credential.c',\n+  'lib/csum-file.c',\n+  'lib/ctype.c',\n+  'lib/date.c',\n+  'lib/decorate.c',\n+  'lib/delta-islands.c',\n+  'lib/diagnose.c',\n+  'lib/diff-delta.c',\n+  'lib/diff-merges.c',\n+  'lib/diff-lib.c',\n+  'lib/diff-no-index.c',\n+  'lib/diff.c',\n+  'lib/diffcore-break.c',\n+  'lib/diffcore-delta.c',\n+  'lib/diffcore-order.c',\n+  'lib/diffcore-pickaxe.c',\n+  'lib/diffcore-rename.c',\n+  'lib/diffcore-rotate.c',\n+  'lib/dir-iterator.c',\n+  'lib/dir.c',\n+  'lib/editor.c',\n+  'lib/entry.c',\n+  'lib/environment.c',\n+  'lib/ewah/bitmap.c',\n+  'lib/ewah/ewah_bitmap.c',\n+  'lib/ewah/ewah_io.c',\n+  'lib/ewah/ewah_rlw.c',\n+  'lib/exec-cmd.c',\n+  'lib/fetch-negotiator.c',\n+  'lib/fetch-pack.c',\n+  'lib/fmt-merge-msg.c',\n+  'lib/fsck.c',\n+  'lib/fsmonitor.c',\n+  'lib/fsmonitor-ipc.c',\n+  'lib/fsmonitor-settings.c',\n+  'lib/gettext.c',\n+  'lib/git-zlib.c',\n+  'lib/gpg-interface.c',\n+  'lib/graph.c',\n+  'lib/grep.c',\n+  'lib/hash-lookup.c',\n+  'lib/hash.c',\n+  'lib/hashmap.c',\n+  'lib/help.c',\n+  'lib/hex.c',\n+  'lib/hex-ll.c',\n+  'lib/hook.c',\n+  'lib/ident.c',\n+  'lib/json-writer.c',\n+  'lib/kwset.c',\n+  'lib/levenshtein.c',\n+  'lib/line-log.c',\n+  'lib/line-range.c',\n+  'lib/linear-assignment.c',\n+  'lib/list-objects-filter-options.c',\n+  'lib/list-objects-filter.c',\n+  'lib/list-objects.c',\n+  'lib/lockfile.c',\n+  'lib/log-tree.c',\n+  'lib/loose.c',\n+  'lib/ls-refs.c',\n+  'lib/mailinfo.c',\n+  'lib/mailmap.c',\n+  'lib/match-trees.c',\n+  'lib/mem-pool.c',\n+  'lib/merge-blobs.c',\n+  'lib/merge-ll.c',\n+  'lib/merge-ort.c',\n+  'lib/merge-ort-wrappers.c',\n+  'lib/merge.c',\n+  'lib/midx.c',\n+  'lib/midx-write.c',\n+  'lib/name-hash.c',\n+  'lib/negotiator/default.c',\n+  'lib/negotiator/noop.c',\n+  'lib/negotiator/skipping.c',\n+  'lib/notes-cache.c',\n+  'lib/notes-merge.c',\n+  'lib/notes-utils.c',\n+  'lib/notes.c',\n+  'lib/object-file-convert.c',\n+  'lib/object-file.c',\n+  'lib/object-name.c',\n+  'lib/object.c',\n+  'lib/odb.c',\n+  'lib/odb/source.c',\n+  'lib/odb/source-files.c',\n+  'lib/odb/streaming.c',\n+  'lib/oid-array.c',\n+  'lib/oidmap.c',\n+  'lib/oidset.c',\n+  'lib/oidtree.c',\n+  'lib/pack-bitmap-write.c',\n+  'lib/pack-bitmap.c',\n+  'lib/pack-check.c',\n+  'lib/pack-mtimes.c',\n+  'lib/pack-objects.c',\n+  'lib/pack-refs.c',\n+  'lib/pack-revindex.c',\n+  'lib/pack-write.c',\n+  'lib/packfile.c',\n+  'lib/pager.c',\n+  'lib/parallel-checkout.c',\n+  'lib/parse.c',\n+  'lib/parse-options-cb.c',\n+  'lib/parse-options.c',\n+  'lib/patch-delta.c',\n+  'lib/patch-ids.c',\n+  'lib/path.c',\n+  'lib/path-walk.c',\n+  'lib/pathspec.c',\n+  'lib/pkt-line.c',\n+  'lib/preload-index.c',\n+  'lib/pretty.c',\n+  'lib/prio-queue.c',\n+  'lib/progress.c',\n+  'lib/promisor-remote.c',\n+  'lib/prompt.c',\n+  'lib/protocol.c',\n+  'lib/protocol-caps.c',\n+  'lib/prune-packed.c',\n+  'lib/pseudo-merge.c',\n+  'lib/quote.c',\n+  'lib/range-diff.c',\n+  'lib/reachable.c',\n+  'lib/read-cache.c',\n+  'lib/rebase-interactive.c',\n+  'lib/rebase.c',\n+  'lib/ref-filter.c',\n+  'lib/reflog-walk.c',\n+  'lib/reflog.c',\n+  'lib/refs.c',\n+  'lib/refs/debug.c',\n+  'lib/refs/files-backend.c',\n+  'lib/refs/reftable-backend.c',\n+  'lib/refs/iterator.c',\n+  'lib/refs/packed-backend.c',\n+  'lib/refs/ref-cache.c',\n+  'lib/refspec.c',\n+  'lib/reftable/basics.c',\n+  'lib/reftable/error.c',\n+  'lib/reftable/block.c',\n+  'lib/reftable/blocksource.c',\n+  'lib/reftable/fsck.c',\n+  'lib/reftable/iter.c',\n+  'lib/reftable/merged.c',\n+  'lib/reftable/pq.c',\n+  'lib/reftable/record.c',\n+  'lib/reftable/stack.c',\n+  'lib/reftable/system.c',\n+  'lib/reftable/table.c',\n+  'lib/reftable/tree.c',\n+  'lib/reftable/writer.c',\n+  'lib/remote.c',\n+  'lib/repack.c',\n+  'lib/repack-cruft.c',\n+  'lib/repack-filtered.c',\n+  'lib/repack-geometry.c',\n+  'lib/repack-midx.c',\n+  'lib/repack-promisor.c',\n+  'lib/replace-object.c',\n+  'lib/replay.c',\n+  'lib/repo-settings.c',\n+  'lib/repository.c',\n+  'lib/rerere.c',\n+  'lib/reset.c',\n+  'lib/resolve-undo.c',\n+  'lib/revision.c',\n+  'lib/run-command.c',\n+  'lib/send-pack.c',\n+  'lib/sequencer.c',\n+  'lib/serve.c',\n+  'lib/server-info.c',\n+  'lib/setup.c',\n+  'lib/shallow.c',\n+  'lib/sideband.c',\n+  'lib/sigchain.c',\n+  'lib/sparse-index.c',\n+  'lib/split-index.c',\n+  'lib/stable-qsort.c',\n+  'lib/statinfo.c',\n+  'lib/strbuf.c',\n+  'lib/string-list.c',\n+  'lib/strmap.c',\n+  'lib/strvec.c',\n+  'lib/sub-process.c',\n+  'lib/submodule-config.c',\n+  'lib/submodule.c',\n+  'lib/symlinks.c',\n+  'lib/tag.c',\n+  'lib/tempfile.c',\n+  'lib/thread-utils.c',\n+  'lib/tmp-objdir.c',\n+  'lib/trace.c',\n+  'lib/trace2.c',\n+  'lib/trace2/tr2_cfg.c',\n+  'lib/trace2/tr2_cmd_name.c',\n+  'lib/trace2/tr2_ctr.c',\n+  'lib/trace2/tr2_dst.c',\n+  'lib/trace2/tr2_sid.c',\n+  'lib/trace2/tr2_sysenv.c',\n+  'lib/trace2/tr2_tbuf.c',\n+  'lib/trace2/tr2_tgt_event.c',\n+  'lib/trace2/tr2_tgt_normal.c',\n+  'lib/trace2/tr2_tgt_perf.c',\n+  'lib/trace2/tr2_tls.c',\n+  'lib/trace2/tr2_tmr.c',\n+  'lib/trailer.c',\n+  'lib/transport-helper.c',\n+  'lib/transport.c',\n+  'lib/tree-diff.c',\n+  'lib/tree-walk.c',\n+  'lib/tree.c',\n+  'lib/unpack-trees.c',\n+  'lib/upload-pack.c',\n+  'lib/url.c',\n+  'lib/urlmatch.c',\n+  'lib/usage.c',\n+  'lib/userdiff.c',\n+  'lib/utf8.c',\n+  'lib/version.c',\n+  'lib/versioncmp.c',\n+  'lib/walker.c',\n+  'lib/wildmatch.c',\n+  'lib/worktree.c',\n+  'lib/wrapper.c',\n+  'lib/write-or-die.c',\n+  'lib/ws.c',\n+  'lib/wt-status.c',\n+  'lib/xdiff-interface.c',\n+  'lib/xdiff/xdiffi.c',\n+  'lib/xdiff/xemit.c',\n+  'lib/xdiff/xhistogram.c',\n+  'lib/xdiff/xmerge.c',\n+  'lib/xdiff/xpatience.c',\n+  'lib/xdiff/xprepare.c',\n+  'lib/xdiff/xutils.c',\n ]\n \n libgit_sources += custom_target(\n@@ -696,17 +696,17 @@ builtin_sources = [\n \n third_party_excludes = [\n   ':!contrib',\n-  ':!compat/inet_ntop.c',\n-  ':!compat/inet_pton.c',\n-  ':!compat/nedmalloc',\n-  ':!compat/obstack.*',\n-  ':!compat/poll',\n-  ':!compat/regex',\n-  ':!sha1collisiondetection',\n-  ':!sha1dc',\n+  ':!lib/compat/inet_ntop.c',\n+  ':!lib/compat/inet_pton.c',\n+  ':!lib/compat/nedmalloc',\n+  ':!lib/compat/obstack.*',\n+  ':!lib/compat/poll',\n+  ':!lib/compat/regex',\n+  ':!lib/sha1collisiondetection',\n+  ':!lib/sha1dc',\n+  ':!lib/xdiff',\n   ':!t/unit-tests/clar',\n   ':!t/t[0-9][0-9][0-9][0-9]*',\n-  ':!xdiff',\n ]\n \n headers_to_check = []\n@@ -835,7 +835,7 @@ if help_format_opt != 'man'\n     libgit_c_args += '-DDEFAULT_HELP_FORMAT=\"' + help_format_opt + '\"'\n endif\n \n-li"},{"id":"541831","messageId":"CABPp-BHr9R1_7P46v=azQE7FnecW7-WkLjVs48OLXBNZp-M-qQ@mail.gmail.com","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-2-03afc731df55@pks.im","subject":"Re: [PATCH RFC 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Elijah Newren","fromEmail":"newren@gmail.com","sentAt":"2026-04-17T17:08:33Z","receivedAt":"2026-04-17T17:08:48Z","isPatch":true,"body":"On Thu, Apr 16, 2026 at 6:33 AM Patrick Steinhardt <ps@pks.im> wrote:\n>\n> The Git project is not exactly the easiest project to get started in:\n> it's written in C and POSIX shell, with bits of Perl, Rust and other\n> languages sprinkled into it. On top of that, the project has grown\n> somewhat organically over time, making the codebase hard to navigate.\n>\n> These are problems that we're aware of, and there have been and still\n> are efforts to clean up some of the technical debt that is natural to\n> exist an a project that is more than 20 years old. Furthermore, we\n> provide resources to newcomers that help them out like our coding\n> guidelines, code of conduct or \"MyFirstContribution.adoc\".\n>\n> But there is a rather practical problem: finding your way around in our\n> project's tree is not easy. Doing a directory listing in the top-level\n> directory will present you with more than 550 files, which makes it\n> extremely hard for a newcomer to figure out what files they are even\n> supposed to look at. This makes the onboarding experience somewhat\n> harder than it really needs to be. This isn't only a problem for\n> newcomers though, as I myself struggle to find the files I am looking\n> for because of the sheer number of files.\n>\n> Besides the problem of discoverability it also creates a problem of\n> structure. It is not obvious at all which files are part of \"libgit.a\"\n> and which files are only linked into our final executables. So while we\n> have this split in our build systems, that split is not evident at all\n> in our tree.\n>\n> Introduce a new \"lib/\" directory and move all of our sources for\n> \"libgit.a\" into it to fix these issues. It makes the split we have\n> evident and reduces the number of files in our top-level tree from 550\n> files to ~80 files.\n>\n> This is still a lot of files, but it's significantly easier to navigate\n> already. Furthermore, we can further iterate after this step and think\n> about introducing a better structure for remaining files, as well.\n\nI think this change makes sense.  The only thing that made me raise an\neyebrow was the moving of the sha1collisiondetection submodule into\nlib/ , but only because I think renames and submodules is bumpy in\ngeneral.  Since we rarely update that submodule, that won't really\naffect us.\n"},{"id":"541835","messageId":"aeKHhHVPUxqMa18L@fruit.crustytoothpaste.net","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-2-03afc731df55@pks.im","subject":"Re: [PATCH RFC 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2026-04-17T19:18:28Z","receivedAt":"2026-04-17T19:18:36Z","isPatch":true,"body":"On 2026-04-16 at 13:24:31, Patrick Steinhardt wrote:\n> Introduce a new \"lib/\" directory and move all of our sources for\n> \"libgit.a\" into it to fix these issues. It makes the split we have\n> evident and reduces the number of files in our top-level tree from 550\n> files to ~80 files.\n> \n> This is still a lot of files, but it's significantly easier to navigate\n> already. Furthermore, we can further iterate after this step and think\n> about introducing a better structure for remaining files, as well.\n\nI have not reviewed the details of the patch in general, but I think\nthis is generally a good idea.  Most projects in non-C languages put\nfiles into some sort of directory structure which seems to help\norganization and discovery, so I think this would be useful here as\nwell.\n\nI'm also fine starting here and evolving our directory layout later on\nto make things even easier to find.  I suspect upcoming Rust code, which\nhas a more rigid structure, will influence some of our C layout as well.\n-- \nbrian m. carlson (they/them)\nToronto, Ontario, CA\n"},{"id":"541838","messageId":"xmqqfr4twaj6.fsf@gitster.g","threadId":"65493","inReplyTo":"aeKHhHVPUxqMa18L@fruit.crustytoothpaste.net","subject":"Re: [PATCH RFC 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-04-17T21:18:37Z","receivedAt":"2026-04-17T21:18:40Z","isPatch":true,"body":"\"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n\n> On 2026-04-16 at 13:24:31, Patrick Steinhardt wrote:\n>> Introduce a new \"lib/\" directory and move all of our sources for\n>> \"libgit.a\" into it to fix these issues. It makes the split we have\n>> evident and reduces the number of files in our top-level tree from 550\n>> files to ~80 files.\n>> \n>> This is still a lot of files, but it's significantly easier to navigate\n>> already. Furthermore, we can further iterate after this step and think\n>> about introducing a better structure for remaining files, as well.\n>\n> I have not reviewed the details of the patch in general, but I think\n> this is generally a good idea.  Most projects in non-C languages put\n> files into some sort of directory structure which seems to help\n> organization and discovery, so I think this would be useful here as\n> well.\n\nI do not mind a move to thin the set of regular files out of the\ntop-level directory.  I have forever been annoyed by my buil<TAB>\nno longer complete to builtin (anticipating either .h or /) and\nit would be nice if build.rs is renamed away, or builtin{.h,/}\nare moved away, to restore the convenience of tab completion back.\n\n"},{"id":"541840","messageId":"aeKrXwdnHjhsVQBI@fruit.crustytoothpaste.net","threadId":"65493","inReplyTo":"xmqqfr4twaj6.fsf@gitster.g","subject":"Re: [PATCH RFC 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2026-04-17T21:51:27Z","receivedAt":"2026-04-17T21:51:30Z","isPatch":true,"body":"On 2026-04-17 at 21:18:37, Junio C Hamano wrote:\n> I do not mind a move to thin the set of regular files out of the\n> top-level directory.  I have forever been annoyed by my buil<TAB>\n> no longer complete to builtin (anticipating either .h or /) and\n> it would be nice if build.rs is renamed away, or builtin{.h,/}\n> are moved away, to restore the convenience of tab completion back.\n\nThe `build.rs` file needs to go at the same level as the Rust `src`\ndirectory so `cargo` can invoke it properly.  I think Patrick had wanted\nto put the Rust code in a directory called `rust`, which would move that\nout of the root of the repository and fix that.  As long as it continues\nto build gracefully on a variety of platforms, I think that would be\nokay.\n-- \nbrian m. carlson (they/them)\nToronto, Ontario, CA\n"},{"id":"541885","messageId":"ef096525-d2d8-47d4-be8f-75236ceeb3c6@gmail.com","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","subject":"Re: [PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Phillip Wood","fromEmail":"phillip.wood123@gmail.com","sentAt":"2026-04-19T14:11:54Z","receivedAt":"2026-04-19T14:11:59Z","isPatch":true,"body":"Hi Patrick\n\nOn 16/04/2026 14:24, Patrick Steinhardt wrote:\n> Hi,\n> \n> this small patch series follows up on a discussion we had two years ago\n> during the Git Contributor's Summit in Berlin.\n> \n> I'm fully aware that this will likely result in some discussion, which\n> is why I have labelled this as RFC. I'd be fine with a result of \"let's\n> not do it\" if we cannot agree on this step, but I think that the current\n> layout hurts discoverability quite a bit. Not only for newcomers, but\n> I'm also struggling with it quite frequently.\n\nI think it makes sense to have all the sources for libgit.a in their own \ndirectory as it is easier to say things like \"please try to avoid new \nuses of 'the_repository' and prefer 'error()' over 'die()' in library \ncode\" if all the library code is in the same directory. I'm not really \nconvinced it helps with discovery though as there are just as many files \nand now there are more subdirectories to trawl through to find what \nyou're looking for. I think the anwser to that problem is \"use 'git \ngrep' or 'ctags' etc.\"\n\n> I also intentionally decided to send this close to the upcoming release\n> so that the series can be merged early in the next release cycle if we\n> were to agree on it.\n\nThat seems very sensible to me\n\nThanks\n\nPhillip\n\n> I've tested this patch series with both GitLab [1] and GitHub [2].\n> \n> Thanks!\n> \n> Patrick\n> \n> [1]: https://gitlab.com/gitlab-org/git/-/merge_requests/544\n> [2]: https://github.com/git/git/pull/2271\n> \n> ---\n> Patrick Steinhardt (2):\n>        t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n>        Move libgit.a sources into separate \"lib/\" directory\n> \n>   .github/workflows/main.yml                         |   8 +-\n>   .gitmodules                                        |   2 +-\n>   Documentation/Makefile                             |   4 +-\n>   Makefile                                           | 762 ++++++++++-----------\n>   config.mak.uname                                   |  52 +-\n>   contrib/buildsystems/CMakeLists.txt                | 107 +--\n>   git.rc.in                                          |   2 +-\n>   abspath.c => lib/abspath.c                         |   0\n>   abspath.h => lib/abspath.h                         |   0\n>   add-interactive.c => lib/add-interactive.c         |   0\n>   add-interactive.h => lib/add-interactive.h         |   0\n>   add-patch.c => lib/add-patch.c                     |   0\n>   add-patch.h => lib/add-patch.h                     |   0\n>   advice.c => lib/advice.c                           |   0\n>   advice.h => lib/advice.h                           |   0\n>   alias.c => lib/alias.c                             |   0\n>   alias.h => lib/alias.h                             |   0\n>   alloc.c => lib/alloc.c                             |   0\n>   alloc.h => lib/alloc.h                             |   0\n>   apply.c => lib/apply.c                             |   0\n>   apply.h => lib/apply.h                             |   0\n>   archive-tar.c => lib/archive-tar.c                 |   0\n>   archive-zip.c => lib/archive-zip.c                 |   0\n>   archive.c => lib/archive.c                         |   0\n>   archive.h => lib/archive.h                         |   0\n>   attr.c => lib/attr.c                               |   0\n>   attr.h => lib/attr.h                               |   0\n>   banned.h => lib/banned.h                           |   0\n>   base85.c => lib/base85.c                           |   0\n>   base85.h => lib/base85.h                           |   0\n>   bisect.c => lib/bisect.c                           |   0\n>   bisect.h => lib/bisect.h                           |   0\n>   blame.c => lib/blame.c                             |   0\n>   blame.h => lib/blame.h                             |   0\n>   blob.c => lib/blob.c                               |   0\n>   blob.h => lib/blob.h                               |   0\n>   {block-sha1 => lib/block-sha1}/sha1.c              |   0\n>   {block-sha1 => lib/block-sha1}/sha1.h              |   0\n>   bloom.c => lib/bloom.c                             |   0\n>   bloom.h => lib/bloom.h                             |   0\n>   branch.c => lib/branch.c                           |   0\n>   branch.h => lib/branch.h                           |   0\n>   builtin.h => lib/builtin.h                         |   0\n>   bundle-uri.c => lib/bundle-uri.c                   |   0\n>   bundle-uri.h => lib/bundle-uri.h                   |   0\n>   bundle.c => lib/bundle.c                           |   0\n>   bundle.h => lib/bundle.h                           |   0\n>   cache-tree.c => lib/cache-tree.c                   |   0\n>   cache-tree.h => lib/cache-tree.h                   |   0\n>   cbtree.c => lib/cbtree.c                           |   0\n>   cbtree.h => lib/cbtree.h                           |   0\n>   chdir-notify.c => lib/chdir-notify.c               |   0\n>   chdir-notify.h => lib/chdir-notify.h               |   0\n>   checkout.c => lib/checkout.c                       |   0\n>   checkout.h => lib/checkout.h                       |   0\n>   chunk-format.c => lib/chunk-format.c               |   0\n>   chunk-format.h => lib/chunk-format.h               |   0\n>   color.c => lib/color.c                             |   0\n>   color.h => lib/color.h                             |   0\n>   column.c => lib/column.c                           |   0\n>   column.h => lib/column.h                           |   0\n>   combine-diff.c => lib/combine-diff.c               |   0\n>   commit-graph.c => lib/commit-graph.c               |   0\n>   commit-graph.h => lib/commit-graph.h               |   0\n>   commit-reach.c => lib/commit-reach.c               |   0\n>   commit-reach.h => lib/commit-reach.h               |   0\n>   commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n>   commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n>   commit-slab.h => lib/commit-slab.h                 |   0\n>   commit.c => lib/commit.c                           |   0\n>   commit.h => lib/commit.h                           |   0\n>   common-exit.c => lib/common-exit.c                 |   0\n>   common-init.c => lib/common-init.c                 |   0\n>   common-init.h => lib/common-init.h                 |   0\n>   {compat => lib/compat}/.gitattributes              |   0\n>   {compat => lib/compat}/access.c                    |   0\n>   {compat => lib/compat}/apple-common-crypto.h       |   0\n>   {compat => lib/compat}/basename.c                  |   0\n>   {compat => lib/compat}/bswap.h                     |   0\n>   {compat => lib/compat}/compiler.h                  |   0\n>   {compat => lib/compat}/darwin/procinfo.c           |   0\n>   {compat => lib/compat}/disk.h                      |   0\n>   {compat => lib/compat}/fileno.c                    |   0\n>   {compat => lib/compat}/fopen.c                     |   0\n>   {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n>   .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n>   .../compat}/fsmonitor/fsm-health-win32.c           |   0\n>   {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n>   {compat => lib/compat}/fsmonitor/fsm-ipc-darwin.c  |   0\n>   {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n>   .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n>   .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n>   {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n>   .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n>   .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n>   .../compat}/fsmonitor/fsm-settings-darwin.c        |   0\n>   .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n>   {compat => lib/compat}/hstrerror.c                 |   0\n>   {compat => lib/compat}/inet_ntop.c                 |   0\n>   {compat => lib/compat}/inet_pton.c                 |   0\n>   {compat => lib/compat}/linux/procinfo.c            |   0\n>   {compat => lib/compat}/memmem.c                    |   0\n>   {compat => lib/compat}/mingw-posix.h               |   0\n>   {compat => lib/compat}/mingw.c                     |   0\n>   {compat => lib/compat}/mingw.h                     |   0\n>   {compat => lib/compat}/mkdir.c                     |   0\n>   {compat => lib/compat}/mmap.c                      |   0\n>   {compat => lib/compat}/msvc-posix.h                |   0\n>   {compat => lib/compat}/msvc.c                      |   0\n>   {compat => lib/compat}/msvc.h                      |   0\n>   {compat => lib/compat}/nedmalloc/License.txt       |   0\n>   {compat => lib/compat}/nedmalloc/Readme.txt        |   0\n>   {compat => lib/compat}/nedmalloc/malloc.c.h        |   0\n>   {compat => lib/compat}/nedmalloc/nedmalloc.c       |   0\n>   {compat => lib/compat}/nedmalloc/nedmalloc.h       |   0\n>   {compat => lib/compat}/nonblock.c                  |   0\n>   {compat => lib/compat}/nonblock.h                  |   0\n>   {compat => lib/compat}/obstack.c                   |   0\n>   {compat => lib/compat}/obstack.h                   |   0\n>   {compat => lib/compat}/open.c                      |   0\n>   {compat => lib/compat}/poll/poll.c                 |   0\n>   {compat => lib/compat}/poll/poll.h                 |   0\n>   {compat => lib/compat}/posix.h                     |   0\n>   {compat => lib/compat}/pread.c                     |   0\n>   {compat => lib/compat}/precompose_utf8.c           |   0\n>   {compat => lib/compat}/precompose_utf8.h           |   0\n>   {compat => lib/compat}/qsort_s.c                   |   0\n>   {compat => lib/compat}/regcomp_enhanced.c          |   0\n>   {compat => lib/compat}/regex/regcomp.c             |   0\n>   {compat => lib/compat}/regex/regex.c               |   0\n>   {compat => lib/compat}/regex/regex.h               |   0\n>   {compat => lib/compat}/regex/regex_internal.c      |   0\n>   {compat => lib/compat}/regex/regex_internal.h      |   0\n>   {compat => lib/compat}/regex/regexec.c             |   0\n>   {compat => lib/compat}/setenv.c                    |   0\n>   {compat => lib/compat}/sha1-chunked.c              |   0\n>   {compat => lib/compat}/sha1-chunked.h              |   0\n>   {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n>   .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n>   {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n>   {compat => lib/compat}/snprintf.c                  |   0\n>   {compat => lib/compat}/stat.c                      |   0\n>   {compat => lib/compat}/strcasestr.c                |   0\n>   {compat => lib/compat}/strdup.c                    |   0\n>   {compat => lib/compat}/strlcpy.c                   |   0\n>   {compat => lib/compat}/strtoimax.c                 |   0\n>   {compat => lib/compat}/strtoumax.c                 |   0\n>   {compat => lib/compat}/stub/procinfo.c             |   0\n>   {compat => lib/compat}/terminal.c                  |   0\n>   {compat => lib/compat}/terminal.h                  |   0\n>   {compat => lib/compat}/unsetenv.c                  |   0\n>   {compat => lib/compat}/vcbuild/.gitignore          |   0\n>   {compat => lib/compat}/vcbuild/README              |  10 +-\n>   {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n>   {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n>   {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n>   {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n>   {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n>   {compat => lib/compat}/vcbuild/include/utime.h     |   0\n>   {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n>   {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n>   {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n>   {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n>   {compat => lib/compat}/win32.h                     |   0\n>   {compat => lib/compat}/win32/alloca.h              |   0\n>   {compat => lib/compat}/win32/dirent.c              |   0\n>   {compat => lib/compat}/win32/dirent.h              |   0\n>   {compat => lib/compat}/win32/flush.c               |   0\n>   {compat => lib/compat}/win32/git.manifest          |   0\n>   {compat => lib/compat}/win32/headless.c            |   0\n>   {compat => lib/compat}/win32/lazyload.h            |   0\n>   {compat => lib/compat}/win32/path-utils.c          |   0\n>   {compat => lib/compat}/win32/path-utils.h          |   0\n>   {compat => lib/compat}/win32/pthread.c             |   0\n>   {compat => lib/compat}/win32/pthread.h             |   0\n>   {compat => lib/compat}/win32/syslog.c              |   0\n>   {compat => lib/compat}/win32/syslog.h              |   0\n>   .../compat}/win32/trace2_win32_process_info.c      |   0\n>   {compat => lib/compat}/win32mmap.c                 |   0\n>   {compat => lib/compat}/winansi.c                   |   0\n>   {compat => lib/compat}/zlib-compat.h               |   0\n>   .../compiler-tricks}/not-constant.c                |   0\n>   config.c => lib/config.c                           |   0\n>   config.h => lib/config.h                           |   0\n>   connect.c => lib/connect.c                         |   0\n>   connect.h => lib/connect.h                         |   0\n>   connected.c => lib/connected.c                     |   0\n>   connected.h => lib/connected.h                     |   0\n>   convert.c => lib/convert.c                         |   0\n>   convert.h => lib/convert.h                         |   0\n>   copy.c => lib/copy.c                               |   0\n>   copy.h => lib/copy.h                               |   0\n>   credential.c => lib/credential.c                   |   0\n>   credential.h => lib/credential.h                   |   0\n>   csum-file.c => lib/csum-file.c                     |   0\n>   csum-file.h => lib/csum-file.h                     |   0\n>   ctype.c => lib/ctype.c                             |   0\n>   date.c => lib/date.c                               |   0\n>   date.h => lib/date.h                               |   0\n>   decorate.c => lib/decorate.c                       |   0\n>   decorate.h => lib/decorate.h                       |   0\n>   delta-islands.c => lib/delta-islands.c             |   0\n>   delta-islands.h => lib/delta-islands.h             |   0\n>   delta.h => lib/delta.h                             |   0\n>   diagnose.c => lib/diagnose.c                       |   0\n>   diagnose.h => lib/diagnose.h                       |   0\n>   diff-delta.c => lib/diff-delta.c                   |   0\n>   diff-lib.c => lib/diff-lib.c                       |   0\n>   diff-merges.c => lib/diff-merges.c                 |   0\n>   diff-merges.h => lib/diff-merges.h                 |   0\n>   diff-no-index.c => lib/diff-no-index.c             |   0\n>   diff.c => lib/diff.c                               |   0\n>   diff.h => lib/diff.h                               |   0\n>   diffcore-break.c => lib/diffcore-break.c           |   0\n>   diffcore-delta.c => lib/diffcore-delta.c           |   0\n>   diffcore-order.c => lib/diffcore-order.c           |   0\n>   diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n>   diffcore-rename.c => lib/diffcore-rename.c         |   0\n>   diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n>   diffcore.h => lib/diffcore.h                       |   0\n>   dir-iterator.c => lib/dir-iterator.c               |   0\n>   dir-iterator.h => lib/dir-iterator.h               |   0\n>   dir.c => lib/dir.c                                 |   0\n>   dir.h => lib/dir.h                                 |   0\n>   editor.c => lib/editor.c                           |   0\n>   editor.h => lib/editor.h                           |   0\n>   entry.c => lib/entry.c                             |   0\n>   entry.h => lib/entry.h                             |   0\n>   environment.c => lib/environment.c                 |   0\n>   environment.h => lib/environment.h                 |   0\n>   {ewah => lib/ewah}/bitmap.c                        |   0\n>   {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n>   {ewah => lib/ewah}/ewah_io.c                       |   0\n>   {ewah => lib/ewah}/ewah_rlw.c                      |   0\n>   {ewah => lib/ewah}/ewok.h                          |   0\n>   {ewah => lib/ewah}/ewok_rlw.h                      |   0\n>   exec-cmd.c => lib/exec-cmd.c                       |   0\n>   exec-cmd.h => lib/exec-cmd.h                       |   0\n>   fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n>   fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n>   fetch-pack.c => lib/fetch-pack.c                   |   0\n>   fetch-pack.h => lib/fetch-pack.h                   |   0\n>   fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n>   fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n>   for-each-ref.h => lib/for-each-ref.h               |   0\n>   fsck.c => lib/fsck.c                               |   0\n>   fsck.h => lib/fsck.h                               |   0\n>   fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n>   fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n>   fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n>   fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n>   .../fsmonitor-path-utils.h                         |   0\n>   fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n>   fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n>   fsmonitor.c => lib/fsmonitor.c                     |   0\n>   fsmonitor.h => lib/fsmonitor.h                     |   0\n>   gettext.c => lib/gettext.c                         |   0\n>   gettext.h => lib/gettext.h                         |   0\n>   git-compat-util.h => lib/git-compat-util.h         |   0\n>   git-curl-compat.h => lib/git-curl-compat.h         |   0\n>   git-zlib.c => lib/git-zlib.c                       |   0\n>   git-zlib.h => lib/git-zlib.h                       |   0\n>   gpg-interface.c => lib/gpg-interface.c             |   0\n>   gpg-interface.h => lib/gpg-interface.h             |   0\n>   graph.c => lib/graph.c                             |   0\n>   graph.h => lib/graph.h                             |   0\n>   grep.c => lib/grep.c                               |   0\n>   grep.h => lib/grep.h                               |   0\n>   hash-lookup.c => lib/hash-lookup.c                 |   0\n>   hash-lookup.h => lib/hash-lookup.h                 |   0\n>   hash.c => lib/hash.c                               |   0\n>   hash.h => lib/hash.h                               |   0\n>   hashmap.c => lib/hashmap.c                         |   0\n>   hashmap.h => lib/hashmap.h                         |   0\n>   help.c => lib/help.c                               |   0\n>   help.h => lib/help.h                               |   0\n>   hex-ll.c => lib/hex-ll.c                           |   0\n>   hex-ll.h => lib/hex-ll.h                           |   0\n>   hex.c => lib/hex.c                                 |   0\n>   hex.h => lib/hex.h                                 |   0\n>   hook.c => lib/hook.c                               |   0\n>   hook.h => lib/hook.h                               |   0\n>   http-walker.c => lib/http-walker.c                 |   0\n>   http.c => lib/http.c                               |   0\n>   http.h => lib/http.h                               |   0\n>   ident.c => lib/ident.c                             |   0\n>   ident.h => lib/ident.h                             |   0\n>   iterator.h => lib/iterator.h                       |   0\n>   json-writer.c => lib/json-writer.c                 |   0\n>   json-writer.h => lib/json-writer.h                 |   0\n>   khash.h => lib/khash.h                             |   0\n>   kwset.c => lib/kwset.c                             |   0\n>   kwset.h => lib/kwset.h                             |   0\n>   levenshtein.c => lib/levenshtein.c                 |   0\n>   levenshtein.h => lib/levenshtein.h                 |   0\n>   line-log.c => lib/line-log.c                       |   0\n>   line-log.h => lib/line-log.h                       |   0\n>   line-range.c => lib/line-range.c                   |   0\n>   line-range.h => lib/line-range.h                   |   0\n>   linear-assignment.c => lib/linear-assignment.c     |   0\n>   linear-assignment.h => lib/linear-assignment.h     |   0\n>   .../list-objects-filter-options.c                  |   0\n>   .../list-objects-filter-options.h                  |   0\n>   list-objects-filter.c => lib/list-objects-filter.c |   0\n>   list-objects-filter.h => lib/list-objects-filter.h |   0\n>   list-objects.c => lib/list-objects.c               |   0\n>   list-objects.h => lib/list-objects.h               |   0\n>   list.h => lib/list.h                               |   0\n>   lockfile.c => lib/lockfile.c                       |   0\n>   lockfile.h => lib/lockfile.h                       |   0\n>   log-tree.c => lib/log-tree.c                       |   0\n>   log-tree.h => lib/log-tree.h                       |   0\n>   loose.c => lib/loose.c                             |   0\n>   loose.h => lib/loose.h                             |   0\n>   ls-refs.c => lib/ls-refs.c                         |   0\n>   ls-refs.h => lib/ls-refs.h                         |   0\n>   mailinfo.c => lib/mailinfo.c                       |   0\n>   mailinfo.h => lib/mailinfo.h                       |   0\n>   mailmap.c => lib/mailmap.c                         |   0\n>   mailmap.h => lib/mailmap.h                         |   0\n>   match-trees.c => lib/match-trees.c                 |   0\n>   match-trees.h => lib/match-trees.h                 |   0\n>   mem-pool.c => lib/mem-pool.c                       |   0\n>   mem-pool.h => lib/mem-pool.h                       |   0\n>   merge-blobs.c => lib/merge-blobs.c                 |   0\n>   merge-blobs.h => lib/merge-blobs.h                 |   0\n>   merge-ll.c => lib/merge-ll.c                       |   0\n>   merge-ll.h => lib/merge-ll.h                       |   0\n>   merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n>   merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n>   merge-ort.c => lib/merge-ort.c                     |   0\n>   merge-ort.h => lib/merge-ort.h                     |   0\n>   merge.c => lib/merge.c                             |   0\n>   merge.h => lib/merge.h                             |   0\n>   mergesort.h => lib/mergesort.h                     |   0\n>   midx-write.c => lib/midx-write.c                   |   0\n>   midx.c => lib/midx.c                               |   0\n>   midx.h => lib/midx.h                               |   0\n>   name-hash.c => lib/name-hash.c                     |   0\n>   name-hash.h => lib/name-hash.h                     |   0\n>   {negotiator => lib/negotiator}/default.c           |   0\n>   {negotiator => lib/negotiator}/default.h           |   0\n>   {negotiator => lib/negotiator}/noop.c              |   0\n>   {negotiator => lib/negotiator}/noop.h              |   0\n>   {negotiator => lib/negotiator}/skipping.c          |   0\n>   {negotiator => lib/negotiator}/skipping.h          |   0\n>   notes-cache.c => lib/notes-cache.c                 |   0\n>   notes-cache.h => lib/notes-cache.h                 |   0\n>   notes-merge.c => lib/notes-merge.c                 |   0\n>   notes-merge.h => lib/notes-merge.h                 |   0\n>   notes-utils.c => lib/notes-utils.c                 |   0\n>   notes-utils.h => lib/notes-utils.h                 |   0\n>   notes.c => lib/notes.c                             |   0\n>   notes.h => lib/notes.h                             |   0\n>   object-file-convert.c => lib/object-file-convert.c |   0\n>   object-file-convert.h => lib/object-file-convert.h |   0\n>   object-file.c => lib/object-file.c                 |   0\n>   object-file.h => lib/object-file.h                 |   0\n>   object-name.c => lib/object-name.c                 |   0\n>   object-name.h => lib/object-name.h                 |   0\n>   object.c => lib/object.c                           |   0\n>   object.h => lib/object.h                           |   0\n>   odb.c => lib/odb.c                                 |   0\n>   odb.h => lib/odb.h                                 |   0\n>   {odb => lib/odb}/source-files.c                    |   0\n>   {odb => lib/odb}/source-files.h                    |   0\n>   {odb => lib/odb}/source.c                          |   0\n>   {odb => lib/odb}/source.h                          |   0\n>   {odb => lib/odb}/streaming.c                       |   0\n>   {odb => lib/odb}/streaming.h                       |   0\n>   oid-array.c => lib/oid-array.c                     |   0\n>   oid-array.h => lib/oid-array.h                     |   0\n>   oidmap.c => lib/oidmap.c                           |   0\n>   oidmap.h => lib/oidmap.h                           |   0\n>   oidset.c => lib/oidset.c                           |   0\n>   oidset.h => lib/oidset.h                           |   0\n>   oidtree.c => lib/oidtree.c                         |   0\n>   oidtree.h => lib/oidtree.h                         |   0\n>   pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n>   pack-bitmap.c => lib/pack-bitmap.c                 |   0\n>   pack-bitmap.h => lib/pack-bitmap.h                 |   0\n>   pack-check.c => lib/pack-check.c                   |   0\n>   pack-mtimes.c => lib/pack-mtimes.c                 |   0\n>   pack-mtimes.h => lib/pack-mtimes.h                 |   0\n>   pack-objects.c => lib/pack-objects.c               |   0\n>   pack-objects.h => lib/pack-objects.h               |   0\n>   pack-refs.c => lib/pack-refs.c                     |   0\n>   pack-refs.h => lib/pack-refs.h                     |   0\n>   pack-revindex.c => lib/pack-revindex.c             |   0\n>   pack-revindex.h => lib/pack-revindex.h             |   0\n>   pack-write.c => lib/pack-write.c                   |   0\n>   pack.h => lib/pack.h                               |   0\n>   packfile.c => lib/packfile.c                       |   0\n>   packfile.h => lib/packfile.h                       |   0\n>   pager.c => lib/pager.c                             |   0\n>   pager.h => lib/pager.h                             |   0\n>   parallel-checkout.c => lib/parallel-checkout.c     |   0\n>   parallel-checkout.h => lib/parallel-checkout.h     |   0\n>   parse-options-cb.c => lib/parse-options-cb.c       |   0\n>   parse-options.c => lib/parse-options.c             |   0\n>   parse-options.h => lib/parse-options.h             |   0\n>   parse.c => lib/parse.c                             |   0\n>   parse.h => lib/parse.h                             |   0\n>   patch-delta.c => lib/patch-delta.c                 |   0\n>   patch-ids.c => lib/patch-ids.c                     |   0\n>   patch-ids.h => lib/patch-ids.h                     |   0\n>   path-walk.c => lib/path-walk.c                     |   0\n>   path-walk.h => lib/path-walk.h                     |   0\n>   path.c => lib/path.c                               |   0\n>   path.h => lib/path.h                               |   0\n>   pathspec.c => lib/pathspec.c                       |   0\n>   pathspec.h => lib/pathspec.h                       |   0\n>   pkt-line.c => lib/pkt-line.c                       |   0\n>   pkt-line.h => lib/pkt-line.h                       |   0\n>   preload-index.c => lib/preload-index.c             |   0\n>   preload-index.h => lib/preload-index.h             |   0\n>   pretty.c => lib/pretty.c                           |   0\n>   pretty.h => lib/pretty.h                           |   0\n>   prio-queue.c => lib/prio-queue.c                   |   0\n>   prio-queue.h => lib/prio-queue.h                   |   0\n>   progress.c => lib/progress.c                       |   0\n>   progress.h => lib/progress.h                       |   0\n>   promisor-remote.c => lib/promisor-remote.c         |   0\n>   promisor-remote.h => lib/promisor-remote.h         |   0\n>   prompt.c => lib/prompt.c                           |   0\n>   prompt.h => lib/prompt.h                           |   0\n>   protocol-caps.c => lib/protocol-caps.c             |   0\n>   protocol-caps.h => lib/protocol-caps.h             |   0\n>   protocol.c => lib/protocol.c                       |   0\n>   protocol.h => lib/protocol.h                       |   0\n>   prune-packed.c => lib/prune-packed.c               |   0\n>   prune-packed.h => lib/prune-packed.h               |   0\n>   pseudo-merge.c => lib/pseudo-merge.c               |   0\n>   pseudo-merge.h => lib/pseudo-merge.h               |   0\n>   quote.c => lib/quote.c                             |   0\n>   quote.h => lib/quote.h                             |   0\n>   range-diff.c => lib/range-diff.c                   |   0\n>   range-diff.h => lib/range-diff.h                   |   0\n>   reachable.c => lib/reachable.c                     |   0\n>   reachable.h => lib/reachable.h                     |   0\n>   read-cache-ll.h => lib/read-cache-ll.h             |   0\n>   read-cache.c => lib/read-cache.c                   |   0\n>   read-cache.h => lib/read-cache.h                   |   0\n>   rebase-interactive.c => lib/rebase-interactive.c   |   0\n>   rebase-interactive.h => lib/rebase-interactive.h   |   0\n>   rebase.c => lib/rebase.c                           |   0\n>   rebase.h => lib/rebase.h                           |   0\n>   ref-filter.c => lib/ref-filter.c                   |   0\n>   ref-filter.h => lib/ref-filter.h                   |   0\n>   reflog-walk.c => lib/reflog-walk.c                 |   0\n>   reflog-walk.h => lib/reflog-walk.h                 |   0\n>   reflog.c => lib/reflog.c                           |   0\n>   reflog.h => lib/reflog.h                           |   0\n>   refs.c => lib/refs.c                               |   0\n>   refs.h => lib/refs.h                               |   0\n>   {refs => lib/refs}/debug.c                         |   0\n>   {refs => lib/refs}/files-backend.c                 |   0\n>   {refs => lib/refs}/iterator.c                      |   0\n>   {refs => lib/refs}/packed-backend.c                |   0\n>   {refs => lib/refs}/packed-backend.h                |   0\n>   {refs => lib/refs}/ref-cache.c                     |   0\n>   {refs => lib/refs}/ref-cache.h                     |   0\n>   {refs => lib/refs}/refs-internal.h                 |   0\n>   {refs => lib/refs}/reftable-backend.c              |   0\n>   refspec.c => lib/refspec.c                         |   0\n>   refspec.h => lib/refspec.h                         |   0\n>   {reftable => lib/reftable}/LICENSE                 |   0\n>   {reftable => lib/reftable}/basics.c                |   0\n>   {reftable => lib/reftable}/basics.h                |   0\n>   {reftable => lib/reftable}/block.c                 |   0\n>   {reftable => lib/reftable}/block.h                 |   0\n>   {reftable => lib/reftable}/blocksource.c           |   0\n>   {reftable => lib/reftable}/blocksource.h           |   0\n>   {reftable => lib/reftable}/constants.h             |   0\n>   {reftable => lib/reftable}/error.c                 |   0\n>   {reftable => lib/reftable}/fsck.c                  |   0\n>   {reftable => lib/reftable}/iter.c                  |   0\n>   {reftable => lib/reftable}/iter.h                  |   0\n>   {reftable => lib/reftable}/merged.c                |   0\n>   {reftable => lib/reftable}/merged.h                |   0\n>   {reftable => lib/reftable}/pq.c                    |   0\n>   {reftable => lib/reftable}/pq.h                    |   0\n>   {reftable => lib/reftable}/record.c                |   0\n>   {reftable => lib/reftable}/record.h                |   0\n>   {reftable => lib/reftable}/reftable-basics.h       |   0\n>   {reftable => lib/reftable}/reftable-block.h        |   0\n>   {reftable => lib/reftable}/reftable-blocksource.h  |   0\n>   {reftable => lib/reftable}/reftable-constants.h    |   0\n>   {reftable => lib/reftable}/reftable-error.h        |   0\n>   {reftable => lib/reftable}/reftable-fsck.h         |   0\n>   {reftable => lib/reftable}/reftable-iterator.h     |   0\n>   {reftable => lib/reftable}/reftable-merged.h       |   0\n>   {reftable => lib/reftable}/reftable-record.h       |   0\n>   {reftable => lib/reftable}/reftable-stack.h        |   0\n>   {reftable => lib/reftable}/reftable-system.h       |   0\n>   {reftable => lib/reftable}/reftable-table.h        |   0\n>   {reftable => lib/reftable}/reftable-writer.h       |   0\n>   {reftable => lib/reftable}/stack.c                 |   0\n>   {reftable => lib/reftable}/stack.h                 |   0\n>   {reftable => lib/reftable}/system.c                |   0\n>   {reftable => lib/reftable}/system.h                |   0\n>   {reftable => lib/reftable}/table.c                 |   0\n>   {reftable => lib/reftable}/table.h                 |   0\n>   {reftable => lib/reftable}/tree.c                  |   0\n>   {reftable => lib/reftable}/tree.h                  |   0\n>   {reftable => lib/reftable}/writer.c                |   0\n>   {reftable => lib/reftable}/writer.h                |   0\n>   remote.c => lib/remote.c                           |   0\n>   remote.h => lib/remote.h                           |   0\n>   repack-cruft.c => lib/repack-cruft.c               |   0\n>   repack-filtered.c => lib/repack-filtered.c         |   0\n>   repack-geometry.c => lib/repack-geometry.c         |   0\n>   repack-midx.c => lib/repack-midx.c                 |   0\n>   repack-promisor.c => lib/repack-promisor.c         |   0\n>   repack.c => lib/repack.c                           |   0\n>   repack.h => lib/repack.h                           |   0\n>   replace-object.c => lib/replace-object.c           |   0\n>   replace-object.h => lib/replace-object.h           |   0\n>   replay.c => lib/replay.c                           |   0\n>   replay.h => lib/replay.h                           |   0\n>   repo-settings.c => lib/repo-settings.c             |   0\n>   repo-settings.h => lib/repo-settings.h             |   0\n>   repository.c => lib/repository.c                   |   0\n>   repository.h => lib/repository.h                   |   0\n>   rerere.c => lib/rerere.c                           |   0\n>   rerere.h => lib/rerere.h                           |   0\n>   reset.c => lib/reset.c                             |   0\n>   reset.h => lib/reset.h                             |   0\n>   resolve-undo.c => lib/resolve-undo.c               |   0\n>   resolve-undo.h => lib/resolve-undo.h               |   0\n>   revision.c => lib/revision.c                       |   0\n>   revision.h => lib/revision.h                       |   0\n>   run-command.c => lib/run-command.c                 |   0\n>   run-command.h => lib/run-command.h                 |   0\n>   sane-ctype.h => lib/sane-ctype.h                   |   0\n>   send-pack.c => lib/send-pack.c                     |   0\n>   send-pack.h => lib/send-pack.h                     |   0\n>   sequencer.c => lib/sequencer.c                     |   0\n>   sequencer.h => lib/sequencer.h                     |   0\n>   serve.c => lib/serve.c                             |   0\n>   serve.h => lib/serve.h                             |   0\n>   server-info.c => lib/server-info.c                 |   0\n>   server-info.h => lib/server-info.h                 |   0\n>   setup.c => lib/setup.c                             |   0\n>   setup.h => lib/setup.h                             |   0\n>   {sha1 => lib/sha1}/openssl.h                       |   0\n>   .../sha1collisiondetection                         |   0\n>   {sha1dc => lib/sha1dc}/.gitattributes              |   0\n>   {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n>   {sha1dc => lib/sha1dc}/sha1.c                      |   0\n>   {sha1dc => lib/sha1dc}/sha1.h                      |   0\n>   {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n>   {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n>   sha1dc_git.c => lib/sha1dc_git.c                   |   0\n>   sha1dc_git.h => lib/sha1dc_git.h                   |   0\n>   {sha256 => lib/sha256}/block/sha256.c              |   0\n>   {sha256 => lib/sha256}/block/sha256.h              |   0\n>   {sha256 => lib/sha256}/gcrypt.h                    |   0\n>   {sha256 => lib/sha256}/nettle.h                    |   0\n>   {sha256 => lib/sha256}/openssl.h                   |   0\n>   shallow.c => lib/shallow.c                         |   0\n>   shallow.h => lib/shallow.h                         |   0\n>   shortlog.h => lib/shortlog.h                       |   0\n>   sideband.c => lib/sideband.c                       |   0\n>   sideband.h => lib/sideband.h                       |   0\n>   sigchain.c => lib/sigchain.c                       |   0\n>   sigchain.h => lib/sigchain.h                       |   0\n>   simple-ipc.h => lib/simple-ipc.h                   |   0\n>   sparse-index.c => lib/sparse-index.c               |   0\n>   sparse-index.h => lib/sparse-index.h               |   0\n>   split-index.c => lib/split-index.c                 |   0\n>   split-index.h => lib/split-index.h                 |   0\n>   stable-qsort.c => lib/stable-qsort.c               |   0\n>   statinfo.c => lib/statinfo.c                       |   0\n>   statinfo.h => lib/statinfo.h                       |   0\n>   strbuf.c => lib/strbuf.c                           |   0\n>   strbuf.h => lib/strbuf.h                           |   0\n>   string-list.c => lib/string-list.c                 |   0\n>   string-list.h => lib/string-list.h                 |   0\n>   strmap.c => lib/strmap.c                           |   0\n>   strmap.h => lib/strmap.h                           |   0\n>   strvec.c => lib/strvec.c                           |   0\n>   strvec.h => lib/strvec.h                           |   0\n>   sub-process.c => lib/sub-process.c                 |   0\n>   sub-process.h => lib/sub-process.h                 |   0\n>   submodule-config.c => lib/submodule-config.c       |   0\n>   submodule-config.h => lib/submodule-config.h       |   0\n>   submodule.c => lib/submodule.c                     |   0\n>   submodule.h => lib/submodule.h                     |   0\n>   symlinks.c => lib/symlinks.c                       |   0\n>   symlinks.h => lib/symlinks.h                       |   0\n>   tag.c => lib/tag.c                                 |   0\n>   tag.h => lib/tag.h                                 |   0\n>   tar.h => lib/tar.h                                 |   0\n>   tempfile.c => lib/tempfile.c                       |   0\n>   tempfile.h => lib/tempfile.h                       |   0\n>   thread-utils.c => lib/thread-utils.c               |   0\n>   thread-utils.h => lib/thread-utils.h               |   0\n>   tmp-objdir.c => lib/tmp-objdir.c                   |   0\n>   tmp-objdir.h => lib/tmp-objdir.h                   |   0\n>   trace.c => lib/trace.c                             |   0\n>   trace.h => lib/trace.h                             |   0\n>   trace2.c => lib/trace2.c                           |   0\n>   trace2.h => lib/trace2.h                           |   0\n>   {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n>   {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n>   {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n>   {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n>   {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n>   {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n>   {trace2 => lib/trace2}/tr2_dst.c                   |   0\n>   {trace2 => lib/trace2}/tr2_dst.h                   |   0\n>   {trace2 => lib/trace2}/tr2_sid.c                   |   0\n>   {trace2 => lib/trace2}/tr2_sid.h                   |   0\n>   {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n>   {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n>   {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n>   {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n>   {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n>   {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n>   {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n>   {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n>   {trace2 => lib/trace2}/tr2_tls.c                   |   0\n>   {trace2 => lib/trace2}/tr2_tls.h                   |   0\n>   {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n>   {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n>   trailer.c => lib/trailer.c                         |   0\n>   trailer.h => lib/trailer.h                         |   0\n>   transport-helper.c => lib/transport-helper.c       |   0\n>   transport-internal.h => lib/transport-internal.h   |   0\n>   transport.c => lib/transport.c                     |   0\n>   transport.h => lib/transport.h                     |   0\n>   tree-diff.c => lib/tree-diff.c                     |   0\n>   tree-walk.c => lib/tree-walk.c                     |   0\n>   tree-walk.h => lib/tree-walk.h                     |   0\n>   tree.c => lib/tree.c                               |   0\n>   tree.h => lib/tree.h                               |   0\n>   unicode-width.h => lib/unicode-width.h             |   0\n>   unix-socket.c => lib/unix-socket.c                 |   0\n>   unix-socket.h => lib/unix-socket.h                 |   0\n>   unix-stream-server.c => lib/unix-stream-server.c   |   0\n>   unix-stream-server.h => lib/unix-stream-server.h   |   0\n>   unpack-trees.c => lib/unpack-trees.c               |   0\n>   unpack-trees.h => lib/unpack-trees.h               |   0\n>   upload-pack.c => lib/upload-pack.c                 |   0\n>   upload-pack.h => lib/upload-pack.h                 |   0\n>   url.c => lib/url.c                                 |   0\n>   url.h => lib/url.h                                 |   0\n>   urlmatch.c => lib/urlmatch.c                       |   0\n>   urlmatch.h => lib/urlmatch.h                       |   0\n>   usage.c => lib/usage.c                             |   0\n>   userdiff.c => lib/userdiff.c                       |   0\n>   userdiff.h => lib/userdiff.h                       |   0\n>   utf8.c => lib/utf8.c                               |   0\n>   utf8.h => lib/utf8.h                               |   0\n>   varint.c => lib/varint.c                           |   0\n>   varint.h => lib/varint.h                           |   0\n>   version-def.h.in => lib/version-def.h.in           |   0\n>   version.c => lib/version.c                         |   0\n>   version.h => lib/version.h                         |   0\n>   versioncmp.c => lib/versioncmp.c                   |   0\n>   versioncmp.h => lib/versioncmp.h                   |   0\n>   walker.c => lib/walker.c                           |   0\n>   walker.h => lib/walker.h                           |   0\n>   wildmatch.c => lib/wildmatch.c                     |   0\n>   wildmatch.h => lib/wildmatch.h                     |   0\n>   worktree.c => lib/worktree.c                       |   0\n>   worktree.h => lib/worktree.h                       |   0\n>   wrapper.c => lib/wrapper.c                         |   0\n>   wrapper.h => lib/wrapper.h                         |   0\n>   write-or-die.c => lib/write-or-die.c               |   0\n>   write-or-die.h => lib/write-or-die.h               |   0\n>   ws.c => lib/ws.c                                   |   0\n>   ws.h => lib/ws.h                                   |   0\n>   wt-status.c => lib/wt-status.c                     |   0\n>   wt-status.h => lib/wt-status.h                     |   0\n>   xdiff-interface.c => lib/xdiff-interface.c         |   0\n>   xdiff-interface.h => lib/xdiff-interface.h         |   0\n>   {xdiff => lib/xdiff}/xdiff.h                       |   0\n>   {xdiff => lib/xdiff}/xdiffi.c                      |   0\n>   {xdiff => lib/xdiff}/xdiffi.h                      |   0\n>   {xdiff => lib/xdiff}/xemit.c                       |   0\n>   {xdiff => lib/xdiff}/xemit.h                       |   0\n>   {xdiff => lib/xdiff}/xhistogram.c                  |   0\n>   {xdiff => lib/xdiff}/xinclude.h                    |   0\n>   {xdiff => lib/xdiff}/xmacros.h                     |   0\n>   {xdiff => lib/xdiff}/xmerge.c                      |   0\n>   {xdiff => lib/xdiff}/xpatience.c                   |   0\n>   {xdiff => lib/xdiff}/xprepare.c                    |   0\n>   {xdiff => lib/xdiff}/xprepare.h                    |   0\n>   {xdiff => lib/xdiff}/xtypes.h                      |   0\n>   {xdiff => lib/xdiff}/xutils.c                      |   0\n>   {xdiff => lib/xdiff}/xutils.h                      |   0\n>   meson.build                                        | 684 +++++++++---------\n>   t/helper/test-example-tap.c                        |   2 +-\n>   695 files changed, 820 insertions(+), 819 deletions(-)\n> \n> \n> ---\n> base-commit: 9f223ef1c026d91c7ac68cc0211bde255dda6199\n> change-id: 20260415-pks-libgit-in-subdir-d8eec849cd48\n> \n> \n\n"},{"id":"541904","messageId":"aeXKf901jbfmEOVk@pks.im","threadId":"65493","inReplyTo":"aeKrXwdnHjhsVQBI@fruit.crustytoothpaste.net","subject":"Re: [PATCH RFC 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-20T06:41:03Z","receivedAt":"2026-04-20T06:41:15Z","isPatch":true,"body":"On Fri, Apr 17, 2026 at 09:51:27PM +0000, brian m. carlson wrote:\n> On 2026-04-17 at 21:18:37, Junio C Hamano wrote:\n> > I do not mind a move to thin the set of regular files out of the\n> > top-level directory.  I have forever been annoyed by my buil<TAB>\n> > no longer complete to builtin (anticipating either .h or /) and\n> > it would be nice if build.rs is renamed away, or builtin{.h,/}\n> > are moved away, to restore the convenience of tab completion back.\n> \n> The `build.rs` file needs to go at the same level as the Rust `src`\n> directory so `cargo` can invoke it properly.  I think Patrick had wanted\n> to put the Rust code in a directory called `rust`, which would move that\n> out of the root of the repository and fix that.  As long as it continues\n> to build gracefully on a variety of platforms, I think that would be\n> okay.\n\nI don't think I was the one proposing the `rust` directory, but I\nwouldn't mind that direction, either.\n\nPatrick\n"},{"id":"541905","messageId":"aeXKl0tUDvlkoHhA@pks.im","threadId":"65493","inReplyTo":"ef096525-d2d8-47d4-be8f-75236ceeb3c6@gmail.com","subject":"Re: [PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-20T06:41:27Z","receivedAt":"2026-04-20T06:41:33Z","isPatch":true,"body":"On Sun, Apr 19, 2026 at 03:11:54PM +0100, Phillip Wood wrote:\n> Hi Patrick\n> \n> On 16/04/2026 14:24, Patrick Steinhardt wrote:\n> > Hi,\n> > \n> > this small patch series follows up on a discussion we had two years ago\n> > during the Git Contributor's Summit in Berlin.\n> > \n> > I'm fully aware that this will likely result in some discussion, which\n> > is why I have labelled this as RFC. I'd be fine with a result of \"let's\n> > not do it\" if we cannot agree on this step, but I think that the current\n> > layout hurts discoverability quite a bit. Not only for newcomers, but\n> > I'm also struggling with it quite frequently.\n> \n> I think it makes sense to have all the sources for libgit.a in their own\n> directory as it is easier to say things like \"please try to avoid new uses\n> of 'the_repository' and prefer 'error()' over 'die()' in library code\" if\n> all the library code is in the same directory. I'm not really convinced it\n> helps with discovery though as there are just as many files and now there\n> are more subdirectories to trawl through to find what you're looking for. I\n> think the anwser to that problem is \"use 'git grep' or 'ctags' etc.\"\n\nAgreed, it doesn't help with discoverability in \"lib/\" itself, as\nthere's still going to be a bunch of files in there. My main intent here\nis to help with discoverability in the top-level directory, which is the\nmain entry point for everyone.\n\nPatrick\n"},{"id":"541972","messageId":"55bde257-ee25-4a7c-a17d-c902aa4f0324@gmail.com","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","subject":"Re: [PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2026-04-20T12:03:44Z","receivedAt":"2026-04-20T12:03:47Z","isPatch":true,"body":"On 4/16/2026 9:24 AM, Patrick Steinhardt wrote:\n> Hi,\n> \n> this small patch series follows up on a discussion we had two years ago\n> during the Git Contributor's Summit in Berlin.\n\nYes. \"small\". ;)\n \n> I'm fully aware that this will likely result in some discussion, which\n> is why I have labelled this as RFC. I'd be fine with a result of \"let's\n> not do it\" if we cannot agree on this step, but I think that the current\n> layout hurts discoverability quite a bit. Not only for newcomers, but\n> I'm also struggling with it quite frequently.\n\nI agree that the flat layout can be hard to navigate. While we are not\nat a scale that needs something like sparse-checkout, but this wide root\ndirectory cannot be reduced by cone-mode patterns. This is meaningful\nonly for niche cases like \"I only care about Documentation/\" or someone\ntesting sparse-checkout performance on a copy of this repo. It's something\nthat I do think worth mentioning whenever such a large refactor will be\nundertaken.\n \n> I also intentionally decided to send this close to the upcoming release\n> so that the series can be merged early in the next release cycle if we\n> were to agree on it.\n\nThere are two really big disruptions that this will introduce. I bring\nthem up only so that we can discuss them and make sure we handle the\ncommunication to the community and appropriately time the merge of this\nseries:\n\n1. It will conflict with most patch series in flight. How can we\n   communicate which topics will be caught up in the rename before it\n   merges, which will be modified at merge time by Junio, and which\n   will need to be sent anew on top of this rename?\n\n2. It will conflict with forks that have long-lived history that is\n   merged with or replayed on the core project. The examples I know\n   well are github/git, git-for-windows/git, and microsoft/git as\n   discussed in [1].\n\n   Something that I think would help for these cases is for the rename\n   to be done as a solo topic merged into 'master' on top of a major\n   release, such as immediately after v2.54.0 (or similar). This would\n   allow a merge or rebase from the previous checkpoint to update to\n   the rename without any other upstream edits causing further conflicts.\n\n   Fork maintainers could then decide if they want to update their forks\n   onto the rename early in the release cycle or as part of the next\n   release cycle. My preference would be to update as part of the current\n   release cycle so any changes during the release cycle automatically\n   incorporate the change similar to working with the core project. (I\n   am not a maintainer of any of these, so it's not actually my decision.)\n\n[1] https://github.blog/developer-skills/github/friend-zone-strategies-friendly-fork-management/\n\nFinally, I looked at what's left after your renames and I see that the\nroot directory has these categories of files remaining at root:\n\n* Dotfiles that must be at root.\n* Documentation that must be at root (README, code of conduct, etc.)\n* Root build logic.\n* .c and .sh files for root-level commands (git, git-*, scalar, etc.)\n\nOf these, I'd be interested to see if there was value in moving this\nfinal category of file into another directory, say 'cmd', 'commands',\nor similar. It's the only remaining knob that I think is technically\npossible to further trim this list of files.\n\nDid you consider moving these files, too?\n\n_If_ we were considering moving these files, then I'd rather make\none big rename change instead of repeating this exercise multiple\ntimes.\n\nThanks,\n-Stolee\n\n"},{"id":"542015","messageId":"aecRW_nwBVM21CPF@pks.im","threadId":"65493","inReplyTo":"55bde257-ee25-4a7c-a17d-c902aa4f0324@gmail.com","subject":"Re: [PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-21T05:55:39Z","receivedAt":"2026-04-21T05:55:44Z","isPatch":true,"body":"On Mon, Apr 20, 2026 at 08:03:44AM -0400, Derrick Stolee wrote:\n> On 4/16/2026 9:24 AM, Patrick Steinhardt wrote:\n> > Hi,\n> > \n> > this small patch series follows up on a discussion we had two years ago\n> > during the Git Contributor's Summit in Berlin.\n> \n> Yes. \"small\". ;)\n>  \n> > I'm fully aware that this will likely result in some discussion, which\n> > is why I have labelled this as RFC. I'd be fine with a result of \"let's\n> > not do it\" if we cannot agree on this step, but I think that the current\n> > layout hurts discoverability quite a bit. Not only for newcomers, but\n> > I'm also struggling with it quite frequently.\n> \n> I agree that the flat layout can be hard to navigate. While we are not\n> at a scale that needs something like sparse-checkout, but this wide root\n> directory cannot be reduced by cone-mode patterns. This is meaningful\n> only for niche cases like \"I only care about Documentation/\" or someone\n> testing sparse-checkout performance on a copy of this repo. It's something\n> that I do think worth mentioning whenever such a large refactor will be\n> undertaken.\n>  \n> > I also intentionally decided to send this close to the upcoming release\n> > so that the series can be merged early in the next release cycle if we\n> > were to agree on it.\n> \n> There are two really big disruptions that this will introduce. I bring\n> them up only so that we can discuss them and make sure we handle the\n> communication to the community and appropriately time the merge of this\n> series:\n> \n> 1. It will conflict with most patch series in flight. How can we\n>    communicate which topics will be caught up in the rename before it\n>    merges, which will be modified at merge time by Junio, and which\n>    will need to be sent anew on top of this rename?\n\nYeah, this is an open question. In any case, I'd be happy to help out\nwith the exercise, if there's anything I can do to make this less\npainful.\n\n> 2. It will conflict with forks that have long-lived history that is\n>    merged with or replayed on the core project. The examples I know\n>    well are github/git, git-for-windows/git, and microsoft/git as\n>    discussed in [1].\n> \n>    Something that I think would help for these cases is for the rename\n>    to be done as a solo topic merged into 'master' on top of a major\n>    release, such as immediately after v2.54.0 (or similar). This would\n>    allow a merge or rebase from the previous checkpoint to update to\n>    the rename without any other upstream edits causing further conflicts.\n> \n>    Fork maintainers could then decide if they want to update their forks\n>    onto the rename early in the release cycle or as part of the next\n>    release cycle. My preference would be to update as part of the current\n>    release cycle so any changes during the release cycle automatically\n>    incorporate the change similar to working with the core project. (I\n>    am not a maintainer of any of these, so it's not actually my decision.)\n> \n> [1] https://github.blog/developer-skills/github/friend-zone-strategies-friendly-fork-management/\n\nAgreed. I've been chatting with Dscho last week to assess a bit how much\npain this would cause, and he basically said \"go for it\". But Git for\nWindows is of course not the only fork we have.\n\n> Finally, I looked at what's left after your renames and I see that the\n> root directory has these categories of files remaining at root:\n> \n> * Dotfiles that must be at root.\n> * Documentation that must be at root (README, code of conduct, etc.)\n> * Root build logic.\n> * .c and .sh files for root-level commands (git, git-*, scalar, etc.)\n> \n> Of these, I'd be interested to see if there was value in moving this\n> final category of file into another directory, say 'cmd', 'commands',\n> or similar. It's the only remaining knob that I think is technically\n> possible to further trim this list of files.\n> \n> Did you consider moving these files, too?\n\nMy initial version was moving around remaining \".c\", \".sh\" and \".perl\"\nfiles, as well. These are (almost) all related to top-level commands\ncommands, so I was handling those by introducing a new \"bin/\" directory\nand moving them in there.\n\nI think the remaining files would mostly stay as-is though. At least I\ncouldn't come up with any obvious additional renames.\n\n> _If_ we were considering moving these files, then I'd rather make\n> one big rename change instead of repeating this exercise multiple\n> times.\n\nI eventually decided to not change too many things at once, as the\n\"lib/\" changes are by far the biggest change, and also result in the\nbiggest improvement, if you ask me. These changes would also\nsignificantly increase the size of this patch series.\n\nSo I still lean into the direction of doing things one step at a time,\nbecause it focusses the discussion, and every subsequent step is\nsignificantly smaller. But if it helps I wouldn't mind also going the\nextra mile.\n\nThanks!\n\nPatrick\n"},{"id":"542044","messageId":"4199e58b-d0fc-4240-9717-16c89ae73322@gmail.com","threadId":"65493","inReplyTo":"aecRW_nwBVM21CPF@pks.im","subject":"Re: [PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2026-04-21T14:13:31Z","receivedAt":"2026-04-21T14:13:33Z","isPatch":true,"body":"On 4/21/2026 1:55 AM, Patrick Steinhardt wrote:\n> On Mon, Apr 20, 2026 at 08:03:44AM -0400, Derrick Stolee wrote:\n\nThanks for your thoughts on the earlier parts of my message. I think\nyou're moving in the right direction and I don't have further comments.\n\n>> Did you consider moving these files, too?\n> \n> My initial version was moving around remaining \".c\", \".sh\" and \".perl\"\n> files, as well. These are (almost) all related to top-level commands\n> commands, so I was handling those by introducing a new \"bin/\" directory\n> and moving them in there.\n...\n> So I still lean into the direction of doing things one step at a time,\n> because it focusses the discussion, and every subsequent step is\n> significantly smaller. But if it helps I wouldn't mind also going the\n> extra mile.\n\nUpon reconsideration, the files that are left probably have less churn\nin the core project, so are less problematic to shift to a new directory\nas an independent update.\n\nI think the forks are more likely to have issues with these core files,\nespecially when they add new commands in git.c. But it's still probably\nbetter to reduce risk wherever possible and this is one way to isolate\nthe risk.\n\nThanks,\n-Stolee\n\n"},{"id":"542097","messageId":"aehtCrj3bnduxRlW@pks.im","threadId":"65493","inReplyTo":"4199e58b-d0fc-4240-9717-16c89ae73322@gmail.com","subject":"Re: [PATCH RFC 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-04-22T06:39:06Z","receivedAt":"2026-04-22T06:39:12Z","isPatch":true,"body":"On Tue, Apr 21, 2026 at 10:13:31AM -0400, Derrick Stolee wrote:\n> On 4/21/2026 1:55 AM, Patrick Steinhardt wrote:\n> > On Mon, Apr 20, 2026 at 08:03:44AM -0400, Derrick Stolee wrote:\n> \n> Thanks for your thoughts on the earlier parts of my message. I think\n> you're moving in the right direction and I don't have further comments.\n\nThanks a lot for your feedback!\n\nPatrick\n"},{"id":"546163","messageId":"20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","subject":"[PATCH RFC v2 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-06-22T10:38:20Z","receivedAt":"2026-06-22T10:38:35Z","isPatch":true,"body":"Hi,\n\nthis small patch series follows up on a discussion we had two years ago\nduring the Git Contributor's Summit in Berlin.\n\nI'm fully aware that this will likely result in some discussion, which\nis why I have labelled this as RFC. I'd be fine with a result of \"let's\nnot do it\" if we cannot agree on this step, but I think that the current\nlayout hurts discoverability quite a bit. Not only for newcomers, but\nI'm also struggling with it quite frequently.\n\nI also intentionally decided to send this close to the upcoming release\nso that the series can be merged early in the next release cycle if we\nwere to agree on it.\n\nI've tested this patch series with both GitLab [1] and GitHub [2].\n\nChanges in v2:\n  - Feedback on v1 was generally positive, and we're close to the next\n    release again. So I've decided to rebase the patch series and send\n    v2 out before the quiet pre-release phase kicks off. The series is\n    thus built on top of 8d96f09e92 (Merge branch\n    'js/objects-larger-than-4gb-on-windows', 2026-06-19) with\n    ps/odb-source-packed at 1bba3c035d (odb/source-packed: drop pointer\n    to \"files\" parent source, 2026-06-17) merged into it.\n  - Fix a couple of instances I missed to update in Meson.\n  - Link to v1: https://patch.msgid.link/20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im\n\nThanks!\n\nPatrick\n\n[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/544\n[2]: https://github.com/git/git/pull/2271\n\n---\nPatrick Steinhardt (2):\n      t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n      Move libgit.a sources into separate \"lib/\" directory\n\n .github/workflows/main.yml                         |   8 +-\n .gitmodules                                        |   2 +-\n Documentation/Makefile                             |   4 +-\n Makefile                                           | 764 ++++++++++-----------\n config.mak.uname                                   |  52 +-\n contrib/buildsystems/CMakeLists.txt                |  95 +--\n git.rc.in                                          |   2 +-\n abspath.c => lib/abspath.c                         |   0\n abspath.h => lib/abspath.h                         |   0\n add-interactive.c => lib/add-interactive.c         |   0\n add-interactive.h => lib/add-interactive.h         |   0\n add-patch.c => lib/add-patch.c                     |   0\n add-patch.h => lib/add-patch.h                     |   0\n advice.c => lib/advice.c                           |   0\n advice.h => lib/advice.h                           |   0\n alias.c => lib/alias.c                             |   0\n alias.h => lib/alias.h                             |   0\n alloc.c => lib/alloc.c                             |   0\n alloc.h => lib/alloc.h                             |   0\n apply.c => lib/apply.c                             |   0\n apply.h => lib/apply.h                             |   0\n archive-tar.c => lib/archive-tar.c                 |   0\n archive-zip.c => lib/archive-zip.c                 |   0\n archive.c => lib/archive.c                         |   0\n archive.h => lib/archive.h                         |   0\n attr.c => lib/attr.c                               |   0\n attr.h => lib/attr.h                               |   0\n banned.h => lib/banned.h                           |   0\n base85.c => lib/base85.c                           |   0\n base85.h => lib/base85.h                           |   0\n bisect.c => lib/bisect.c                           |   0\n bisect.h => lib/bisect.h                           |   0\n blame.c => lib/blame.c                             |   0\n blame.h => lib/blame.h                             |   0\n blob.c => lib/blob.c                               |   0\n blob.h => lib/blob.h                               |   0\n {block-sha1 => lib/block-sha1}/sha1.c              |   0\n {block-sha1 => lib/block-sha1}/sha1.h              |   0\n bloom.c => lib/bloom.c                             |   0\n bloom.h => lib/bloom.h                             |   0\n branch.c => lib/branch.c                           |   0\n branch.h => lib/branch.h                           |   0\n builtin.h => lib/builtin.h                         |   0\n bundle-uri.c => lib/bundle-uri.c                   |   0\n bundle-uri.h => lib/bundle-uri.h                   |   0\n bundle.c => lib/bundle.c                           |   0\n bundle.h => lib/bundle.h                           |   0\n cache-tree.c => lib/cache-tree.c                   |   0\n cache-tree.h => lib/cache-tree.h                   |   0\n cbtree.c => lib/cbtree.c                           |   0\n cbtree.h => lib/cbtree.h                           |   0\n chdir-notify.c => lib/chdir-notify.c               |   0\n chdir-notify.h => lib/chdir-notify.h               |   0\n checkout.c => lib/checkout.c                       |   0\n checkout.h => lib/checkout.h                       |   0\n chunk-format.c => lib/chunk-format.c               |   0\n chunk-format.h => lib/chunk-format.h               |   0\n color.c => lib/color.c                             |   0\n color.h => lib/color.h                             |   0\n column.c => lib/column.c                           |   0\n column.h => lib/column.h                           |   0\n combine-diff.c => lib/combine-diff.c               |   0\n commit-graph.c => lib/commit-graph.c               |   0\n commit-graph.h => lib/commit-graph.h               |   0\n commit-reach.c => lib/commit-reach.c               |   0\n commit-reach.h => lib/commit-reach.h               |   0\n commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n commit-slab.h => lib/commit-slab.h                 |   0\n commit.c => lib/commit.c                           |   0\n commit.h => lib/commit.h                           |   0\n common-exit.c => lib/common-exit.c                 |   0\n common-init.c => lib/common-init.c                 |   0\n common-init.h => lib/common-init.h                 |   0\n {compat => lib/compat}/.gitattributes              |   0\n {compat => lib/compat}/access.c                    |   0\n {compat => lib/compat}/apple-common-crypto.h       |   0\n {compat => lib/compat}/basename.c                  |   0\n {compat => lib/compat}/bswap.h                     |   0\n {compat => lib/compat}/compiler.h                  |   0\n {compat => lib/compat}/darwin/procinfo.c           |   0\n {compat => lib/compat}/disk.h                      |   0\n {compat => lib/compat}/fileno.c                    |   0\n {compat => lib/compat}/fopen.c                     |   0\n {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n .../compat}/fsmonitor/fsm-health-linux.c           |   0\n .../compat}/fsmonitor/fsm-health-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-unix.c    |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n .../compat}/fsmonitor/fsm-listen-linux.c           |   0\n .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n .../compat}/fsmonitor/fsm-path-utils-linux.c       |   0\n .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n .../compat}/fsmonitor/fsm-settings-unix.c          |   0\n .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n {compat => lib/compat}/hstrerror.c                 |   0\n {compat => lib/compat}/inet_ntop.c                 |   0\n {compat => lib/compat}/inet_pton.c                 |   0\n {compat => lib/compat}/linux/procinfo.c            |   0\n {compat => lib/compat}/memmem.c                    |   0\n {compat => lib/compat}/mingw-posix.h               |   0\n {compat => lib/compat}/mingw.c                     |   0\n {compat => lib/compat}/mingw.h                     |   0\n {compat => lib/compat}/mkdir.c                     |   0\n {compat => lib/compat}/mmap.c                      |   0\n {compat => lib/compat}/msvc-posix.h                |   0\n {compat => lib/compat}/msvc.c                      |   0\n {compat => lib/compat}/msvc.h                      |   0\n {compat => lib/compat}/nonblock.c                  |   0\n {compat => lib/compat}/nonblock.h                  |   0\n {compat => lib/compat}/obstack.c                   |   0\n {compat => lib/compat}/obstack.h                   |   0\n {compat => lib/compat}/open.c                      |   0\n {compat => lib/compat}/poll/poll.c                 |   0\n {compat => lib/compat}/poll/poll.h                 |   0\n {compat => lib/compat}/posix.h                     |   0\n {compat => lib/compat}/pread.c                     |   0\n {compat => lib/compat}/precompose_utf8.c           |   0\n {compat => lib/compat}/precompose_utf8.h           |   0\n {compat => lib/compat}/qsort_s.c                   |   0\n {compat => lib/compat}/regcomp_enhanced.c          |   0\n {compat => lib/compat}/regex/regcomp.c             |   0\n {compat => lib/compat}/regex/regex.c               |   0\n {compat => lib/compat}/regex/regex.h               |   0\n {compat => lib/compat}/regex/regex_internal.c      |   0\n {compat => lib/compat}/regex/regex_internal.h      |   0\n {compat => lib/compat}/regex/regexec.c             |   0\n {compat => lib/compat}/setenv.c                    |   0\n {compat => lib/compat}/sha1-chunked.c              |   0\n {compat => lib/compat}/sha1-chunked.h              |   0\n {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n {compat => lib/compat}/snprintf.c                  |   0\n {compat => lib/compat}/stat.c                      |   0\n {compat => lib/compat}/strcasestr.c                |   0\n {compat => lib/compat}/strdup.c                    |   0\n {compat => lib/compat}/strlcpy.c                   |   0\n {compat => lib/compat}/strtoimax.c                 |   0\n {compat => lib/compat}/strtoumax.c                 |   0\n {compat => lib/compat}/stub/procinfo.c             |   0\n {compat => lib/compat}/terminal.c                  |   0\n {compat => lib/compat}/terminal.h                  |   0\n {compat => lib/compat}/unsetenv.c                  |   0\n {compat => lib/compat}/vcbuild/.gitignore          |   0\n {compat => lib/compat}/vcbuild/README              |  10 +-\n {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n {compat => lib/compat}/vcbuild/include/utime.h     |   0\n {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n {compat => lib/compat}/win32.h                     |   0\n {compat => lib/compat}/win32/alloca.h              |   0\n {compat => lib/compat}/win32/dirent.c              |   0\n {compat => lib/compat}/win32/dirent.h              |   0\n {compat => lib/compat}/win32/exit-process.h        |   0\n {compat => lib/compat}/win32/flush.c               |   0\n {compat => lib/compat}/win32/git.manifest          |   0\n {compat => lib/compat}/win32/headless.c            |   0\n {compat => lib/compat}/win32/lazyload.h            |   0\n {compat => lib/compat}/win32/path-utils.c          |   0\n {compat => lib/compat}/win32/path-utils.h          |   0\n {compat => lib/compat}/win32/pthread.c             |   0\n {compat => lib/compat}/win32/pthread.h             |   0\n {compat => lib/compat}/win32/syslog.c              |   0\n {compat => lib/compat}/win32/syslog.h              |   0\n .../compat}/win32/trace2_win32_process_info.c      |   0\n {compat => lib/compat}/win32mmap.c                 |   0\n {compat => lib/compat}/winansi.c                   |   0\n {compat => lib/compat}/zlib-compat.h               |   0\n .../compiler-tricks}/not-constant.c                |   0\n config.c => lib/config.c                           |   0\n config.h => lib/config.h                           |   0\n connect.c => lib/connect.c                         |   0\n connect.h => lib/connect.h                         |   0\n connected.c => lib/connected.c                     |   0\n connected.h => lib/connected.h                     |   0\n convert.c => lib/convert.c                         |   0\n convert.h => lib/convert.h                         |   0\n copy.c => lib/copy.c                               |   0\n copy.h => lib/copy.h                               |   0\n credential.c => lib/credential.c                   |   0\n credential.h => lib/credential.h                   |   0\n csum-file.c => lib/csum-file.c                     |   0\n csum-file.h => lib/csum-file.h                     |   0\n ctype.c => lib/ctype.c                             |   0\n date.c => lib/date.c                               |   0\n date.h => lib/date.h                               |   0\n decorate.c => lib/decorate.c                       |   0\n decorate.h => lib/decorate.h                       |   0\n delta-islands.c => lib/delta-islands.c             |   0\n delta-islands.h => lib/delta-islands.h             |   0\n delta.h => lib/delta.h                             |   0\n diagnose.c => lib/diagnose.c                       |   0\n diagnose.h => lib/diagnose.h                       |   0\n diff-delta.c => lib/diff-delta.c                   |   0\n diff-lib.c => lib/diff-lib.c                       |   0\n diff-merges.c => lib/diff-merges.c                 |   0\n diff-merges.h => lib/diff-merges.h                 |   0\n diff-no-index.c => lib/diff-no-index.c             |   0\n diff.c => lib/diff.c                               |   0\n diff.h => lib/diff.h                               |   0\n diffcore-break.c => lib/diffcore-break.c           |   0\n diffcore-delta.c => lib/diffcore-delta.c           |   0\n diffcore-order.c => lib/diffcore-order.c           |   0\n diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n diffcore-rename.c => lib/diffcore-rename.c         |   0\n diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n diffcore.h => lib/diffcore.h                       |   0\n dir-iterator.c => lib/dir-iterator.c               |   0\n dir-iterator.h => lib/dir-iterator.h               |   0\n dir.c => lib/dir.c                                 |   0\n dir.h => lib/dir.h                                 |   0\n editor.c => lib/editor.c                           |   0\n editor.h => lib/editor.h                           |   0\n entry.c => lib/entry.c                             |   0\n entry.h => lib/entry.h                             |   0\n environment.c => lib/environment.c                 |   0\n environment.h => lib/environment.h                 |   0\n {ewah => lib/ewah}/bitmap.c                        |   0\n {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n {ewah => lib/ewah}/ewah_io.c                       |   0\n {ewah => lib/ewah}/ewah_rlw.c                      |   0\n {ewah => lib/ewah}/ewok.h                          |   0\n {ewah => lib/ewah}/ewok_rlw.h                      |   0\n exec-cmd.c => lib/exec-cmd.c                       |   0\n exec-cmd.h => lib/exec-cmd.h                       |   0\n fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n fetch-pack.c => lib/fetch-pack.c                   |   0\n fetch-pack.h => lib/fetch-pack.h                   |   0\n fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n for-each-ref.h => lib/for-each-ref.h               |   0\n fsck.c => lib/fsck.c                               |   0\n fsck.h => lib/fsck.h                               |   0\n fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n .../fsmonitor-path-utils.h                         |   0\n fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n fsmonitor.c => lib/fsmonitor.c                     |   0\n fsmonitor.h => lib/fsmonitor.h                     |   0\n gettext.c => lib/gettext.c                         |   0\n gettext.h => lib/gettext.h                         |   0\n git-compat-util.h => lib/git-compat-util.h         |   0\n git-curl-compat.h => lib/git-curl-compat.h         |   0\n git-zlib.c => lib/git-zlib.c                       |   0\n git-zlib.h => lib/git-zlib.h                       |   0\n gpg-interface.c => lib/gpg-interface.c             |   0\n gpg-interface.h => lib/gpg-interface.h             |   0\n graph.c => lib/graph.c                             |   0\n graph.h => lib/graph.h                             |   0\n grep.c => lib/grep.c                               |   0\n grep.h => lib/grep.h                               |   0\n hash-lookup.c => lib/hash-lookup.c                 |   0\n hash-lookup.h => lib/hash-lookup.h                 |   0\n hash.c => lib/hash.c                               |   0\n hash.h => lib/hash.h                               |   0\n hashmap.c => lib/hashmap.c                         |   0\n hashmap.h => lib/hashmap.h                         |   0\n help.c => lib/help.c                               |   0\n help.h => lib/help.h                               |   0\n hex-ll.c => lib/hex-ll.c                           |   0\n hex-ll.h => lib/hex-ll.h                           |   0\n hex.c => lib/hex.c                                 |   0\n hex.h => lib/hex.h                                 |   0\n hook.c => lib/hook.c                               |   0\n hook.h => lib/hook.h                               |   0\n http-walker.c => lib/http-walker.c                 |   0\n http.c => lib/http.c                               |   0\n http.h => lib/http.h                               |   0\n ident.c => lib/ident.c                             |   0\n ident.h => lib/ident.h                             |   0\n iterator.h => lib/iterator.h                       |   0\n json-writer.c => lib/json-writer.c                 |   0\n json-writer.h => lib/json-writer.h                 |   0\n khash.h => lib/khash.h                             |   0\n kwset.c => lib/kwset.c                             |   0\n kwset.h => lib/kwset.h                             |   0\n levenshtein.c => lib/levenshtein.c                 |   0\n levenshtein.h => lib/levenshtein.h                 |   0\n line-log.c => lib/line-log.c                       |   0\n line-log.h => lib/line-log.h                       |   0\n line-range.c => lib/line-range.c                   |   0\n line-range.h => lib/line-range.h                   |   0\n linear-assignment.c => lib/linear-assignment.c     |   0\n linear-assignment.h => lib/linear-assignment.h     |   0\n .../list-objects-filter-options.c                  |   0\n .../list-objects-filter-options.h                  |   0\n list-objects-filter.c => lib/list-objects-filter.c |   0\n list-objects-filter.h => lib/list-objects-filter.h |   0\n list-objects.c => lib/list-objects.c               |   0\n list-objects.h => lib/list-objects.h               |   0\n list.h => lib/list.h                               |   0\n lockfile.c => lib/lockfile.c                       |   0\n lockfile.h => lib/lockfile.h                       |   0\n log-tree.c => lib/log-tree.c                       |   0\n log-tree.h => lib/log-tree.h                       |   0\n loose.c => lib/loose.c                             |   0\n loose.h => lib/loose.h                             |   0\n ls-refs.c => lib/ls-refs.c                         |   0\n ls-refs.h => lib/ls-refs.h                         |   0\n mailinfo.c => lib/mailinfo.c                       |   0\n mailinfo.h => lib/mailinfo.h                       |   0\n mailmap.c => lib/mailmap.c                         |   0\n mailmap.h => lib/mailmap.h                         |   0\n match-trees.c => lib/match-trees.c                 |   0\n match-trees.h => lib/match-trees.h                 |   0\n mem-pool.c => lib/mem-pool.c                       |   0\n mem-pool.h => lib/mem-pool.h                       |   0\n merge-blobs.c => lib/merge-blobs.c                 |   0\n merge-blobs.h => lib/merge-blobs.h                 |   0\n merge-ll.c => lib/merge-ll.c                       |   0\n merge-ll.h => lib/merge-ll.h                       |   0\n merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n merge-ort.c => lib/merge-ort.c                     |   0\n merge-ort.h => lib/merge-ort.h                     |   0\n merge.c => lib/merge.c                             |   0\n merge.h => lib/merge.h                             |   0\n mergesort.h => lib/mergesort.h                     |   0\n midx-write.c => lib/midx-write.c                   |   0\n midx.c => lib/midx.c                               |   0\n midx.h => lib/midx.h                               |   0\n name-hash.c => lib/name-hash.c                     |   0\n name-hash.h => lib/name-hash.h                     |   0\n {negotiator => lib/negotiator}/default.c           |   0\n {negotiator => lib/negotiator}/default.h           |   0\n {negotiator => lib/negotiator}/noop.c              |   0\n {negotiator => lib/negotiator}/noop.h              |   0\n {negotiator => lib/negotiator}/skipping.c          |   0\n {negotiator => lib/negotiator}/skipping.h          |   0\n notes-cache.c => lib/notes-cache.c                 |   0\n notes-cache.h => lib/notes-cache.h                 |   0\n notes-merge.c => lib/notes-merge.c                 |   0\n notes-merge.h => lib/notes-merge.h                 |   0\n notes-utils.c => lib/notes-utils.c                 |   0\n notes-utils.h => lib/notes-utils.h                 |   0\n notes.c => lib/notes.c                             |   0\n notes.h => lib/notes.h                             |   0\n object-file-convert.c => lib/object-file-convert.c |   0\n object-file-convert.h => lib/object-file-convert.h |   0\n object-file.c => lib/object-file.c                 |   0\n object-file.h => lib/object-file.h                 |   0\n object-name.c => lib/object-name.c                 |   0\n object-name.h => lib/object-name.h                 |   0\n object.c => lib/object.c                           |   0\n object.h => lib/object.h                           |   0\n odb.c => lib/odb.c                                 |   0\n odb.h => lib/odb.h                                 |   0\n {odb => lib/odb}/source-files.c                    |   0\n {odb => lib/odb}/source-files.h                    |   0\n {odb => lib/odb}/source-inmemory.c                 |   0\n {odb => lib/odb}/source-inmemory.h                 |   0\n {odb => lib/odb}/source-loose.c                    |   0\n {odb => lib/odb}/source-loose.h                    |   0\n {odb => lib/odb}/source-packed.c                   |   0\n {odb => lib/odb}/source-packed.h                   |   0\n {odb => lib/odb}/source.c                          |   0\n {odb => lib/odb}/source.h                          |   0\n {odb => lib/odb}/streaming.c                       |   0\n {odb => lib/odb}/streaming.h                       |   0\n {odb => lib/odb}/transaction.c                     |   0\n {odb => lib/odb}/transaction.h                     |   0\n oid-array.c => lib/oid-array.c                     |   0\n oid-array.h => lib/oid-array.h                     |   0\n oidmap.c => lib/oidmap.c                           |   0\n oidmap.h => lib/oidmap.h                           |   0\n oidset.c => lib/oidset.c                           |   0\n oidset.h => lib/oidset.h                           |   0\n oidtree.c => lib/oidtree.c                         |   0\n oidtree.h => lib/oidtree.h                         |   0\n pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n pack-bitmap.c => lib/pack-bitmap.c                 |   0\n pack-bitmap.h => lib/pack-bitmap.h                 |   0\n pack-check.c => lib/pack-check.c                   |   0\n pack-mtimes.c => lib/pack-mtimes.c                 |   0\n pack-mtimes.h => lib/pack-mtimes.h                 |   0\n pack-objects.c => lib/pack-objects.c               |   0\n pack-objects.h => lib/pack-objects.h               |   0\n pack-refs.c => lib/pack-refs.c                     |   0\n pack-refs.h => lib/pack-refs.h                     |   0\n pack-revindex.c => lib/pack-revindex.c             |   0\n pack-revindex.h => lib/pack-revindex.h             |   0\n pack-write.c => lib/pack-write.c                   |   0\n pack.h => lib/pack.h                               |   0\n packfile-list.c => lib/packfile-list.c             |   0\n packfile-list.h => lib/packfile-list.h             |   0\n packfile.c => lib/packfile.c                       |   0\n packfile.h => lib/packfile.h                       |   0\n pager.c => lib/pager.c                             |   0\n pager.h => lib/pager.h                             |   0\n parallel-checkout.c => lib/parallel-checkout.c     |   0\n parallel-checkout.h => lib/parallel-checkout.h     |   0\n parse-options-cb.c => lib/parse-options-cb.c       |   0\n parse-options.c => lib/parse-options.c             |   0\n parse-options.h => lib/parse-options.h             |   0\n parse.c => lib/parse.c                             |   0\n parse.h => lib/parse.h                             |   0\n patch-delta.c => lib/patch-delta.c                 |   0\n patch-ids.c => lib/patch-ids.c                     |   0\n patch-ids.h => lib/patch-ids.h                     |   0\n path-walk.c => lib/path-walk.c                     |   0\n path-walk.h => lib/path-walk.h                     |   0\n path.c => lib/path.c                               |   0\n path.h => lib/path.h                               |   0\n pathspec.c => lib/pathspec.c                       |   0\n pathspec.h => lib/pathspec.h                       |   0\n pkt-line.c => lib/pkt-line.c                       |   0\n pkt-line.h => lib/pkt-line.h                       |   0\n preload-index.c => lib/preload-index.c             |   0\n preload-index.h => lib/preload-index.h             |   0\n pretty.c => lib/pretty.c                           |   0\n pretty.h => lib/pretty.h                           |   0\n prio-queue.c => lib/prio-queue.c                   |   0\n prio-queue.h => lib/prio-queue.h                   |   0\n progress.c => lib/progress.c                       |   0\n progress.h => lib/progress.h                       |   0\n promisor-remote.c => lib/promisor-remote.c         |   0\n promisor-remote.h => lib/promisor-remote.h         |   0\n prompt.c => lib/prompt.c                           |   0\n prompt.h => lib/prompt.h                           |   0\n protocol-caps.c => lib/protocol-caps.c             |   0\n protocol-caps.h => lib/protocol-caps.h             |   0\n protocol.c => lib/protocol.c                       |   0\n protocol.h => lib/protocol.h                       |   0\n prune-packed.c => lib/prune-packed.c               |   0\n prune-packed.h => lib/prune-packed.h               |   0\n pseudo-merge.c => lib/pseudo-merge.c               |   0\n pseudo-merge.h => lib/pseudo-merge.h               |   0\n quote.c => lib/quote.c                             |   0\n quote.h => lib/quote.h                             |   0\n range-diff.c => lib/range-diff.c                   |   0\n range-diff.h => lib/range-diff.h                   |   0\n reachable.c => lib/reachable.c                     |   0\n reachable.h => lib/reachable.h                     |   0\n read-cache-ll.h => lib/read-cache-ll.h             |   0\n read-cache.c => lib/read-cache.c                   |   0\n read-cache.h => lib/read-cache.h                   |   0\n rebase-interactive.c => lib/rebase-interactive.c   |   0\n rebase-interactive.h => lib/rebase-interactive.h   |   0\n rebase.c => lib/rebase.c                           |   0\n rebase.h => lib/rebase.h                           |   0\n ref-filter.c => lib/ref-filter.c                   |   0\n ref-filter.h => lib/ref-filter.h                   |   0\n reflog-walk.c => lib/reflog-walk.c                 |   0\n reflog-walk.h => lib/reflog-walk.h                 |   0\n reflog.c => lib/reflog.c                           |   0\n reflog.h => lib/reflog.h                           |   0\n refs.c => lib/refs.c                               |   0\n refs.h => lib/refs.h                               |   0\n {refs => lib/refs}/debug.c                         |   0\n {refs => lib/refs}/files-backend.c                 |   0\n {refs => lib/refs}/iterator.c                      |   0\n {refs => lib/refs}/packed-backend.c                |   0\n {refs => lib/refs}/packed-backend.h                |   0\n {refs => lib/refs}/ref-cache.c                     |   0\n {refs => lib/refs}/ref-cache.h                     |   0\n {refs => lib/refs}/refs-internal.h                 |   0\n {refs => lib/refs}/reftable-backend.c              |   0\n refspec.c => lib/refspec.c                         |   0\n refspec.h => lib/refspec.h                         |   0\n {reftable => lib/reftable}/LICENSE                 |   0\n {reftable => lib/reftable}/basics.c                |   0\n {reftable => lib/reftable}/basics.h                |   0\n {reftable => lib/reftable}/block.c                 |   0\n {reftable => lib/reftable}/block.h                 |   0\n {reftable => lib/reftable}/blocksource.c           |   0\n {reftable => lib/reftable}/blocksource.h           |   0\n {reftable => lib/reftable}/constants.h             |   0\n {reftable => lib/reftable}/error.c                 |   0\n {reftable => lib/reftable}/fsck.c                  |   0\n {reftable => lib/reftable}/iter.c                  |   0\n {reftable => lib/reftable}/iter.h                  |   0\n {reftable => lib/reftable}/merged.c                |   0\n {reftable => lib/reftable}/merged.h                |   0\n {reftable => lib/reftable}/pq.c                    |   0\n {reftable => lib/reftable}/pq.h                    |   0\n {reftable => lib/reftable}/record.c                |   0\n {reftable => lib/reftable}/record.h                |   0\n {reftable => lib/reftable}/reftable-basics.h       |   0\n {reftable => lib/reftable}/reftable-block.h        |   0\n {reftable => lib/reftable}/reftable-blocksource.h  |   0\n {reftable => lib/reftable}/reftable-constants.h    |   0\n {reftable => lib/reftable}/reftable-error.h        |   0\n {reftable => lib/reftable}/reftable-fsck.h         |   0\n {reftable => lib/reftable}/reftable-iterator.h     |   0\n {reftable => lib/reftable}/reftable-merged.h       |   0\n {reftable => lib/reftable}/reftable-record.h       |   0\n {reftable => lib/reftable}/reftable-stack.h        |   0\n {reftable => lib/reftable}/reftable-system.h       |   0\n {reftable => lib/reftable}/reftable-table.h        |   0\n {reftable => lib/reftable}/reftable-writer.h       |   0\n {reftable => lib/reftable}/stack.c                 |   0\n {reftable => lib/reftable}/stack.h                 |   0\n {reftable => lib/reftable}/system.c                |   0\n {reftable => lib/reftable}/system.h                |   0\n {reftable => lib/reftable}/table.c                 |   0\n {reftable => lib/reftable}/table.h                 |   0\n {reftable => lib/reftable}/tree.c                  |   0\n {reftable => lib/reftable}/tree.h                  |   0\n {reftable => lib/reftable}/writer.c                |   0\n {reftable => lib/reftable}/writer.h                |   0\n remote.c => lib/remote.c                           |   0\n remote.h => lib/remote.h                           |   0\n repack-cruft.c => lib/repack-cruft.c               |   0\n repack-filtered.c => lib/repack-filtered.c         |   0\n repack-geometry.c => lib/repack-geometry.c         |   0\n repack-midx.c => lib/repack-midx.c                 |   0\n repack-promisor.c => lib/repack-promisor.c         |   0\n repack.c => lib/repack.c                           |   0\n repack.h => lib/repack.h                           |   0\n replace-object.c => lib/replace-object.c           |   0\n replace-object.h => lib/replace-object.h           |   0\n replay.c => lib/replay.c                           |   0\n replay.h => lib/replay.h                           |   0\n repo-settings.c => lib/repo-settings.c             |   0\n repo-settings.h => lib/repo-settings.h             |   0\n repository.c => lib/repository.c                   |   0\n repository.h => lib/repository.h                   |   0\n rerere.c => lib/rerere.c                           |   0\n rerere.h => lib/rerere.h                           |   0\n reset.c => lib/reset.c                             |   0\n reset.h => lib/reset.h                             |   0\n resolve-undo.c => lib/resolve-undo.c               |   0\n resolve-undo.h => lib/resolve-undo.h               |   0\n revision.c => lib/revision.c                       |   0\n revision.h => lib/revision.h                       |   0\n run-command.c => lib/run-command.c                 |   0\n run-command.h => lib/run-command.h                 |   0\n sane-ctype.h => lib/sane-ctype.h                   |   0\n send-pack.c => lib/send-pack.c                     |   0\n send-pack.h => lib/send-pack.h                     |   0\n sequencer.c => lib/sequencer.c                     |   0\n sequencer.h => lib/sequencer.h                     |   0\n serve.c => lib/serve.c                             |   0\n serve.h => lib/serve.h                             |   0\n server-info.c => lib/server-info.c                 |   0\n server-info.h => lib/server-info.h                 |   0\n setup.c => lib/setup.c                             |   0\n setup.h => lib/setup.h                             |   0\n {sha1 => lib/sha1}/openssl.h                       |   0\n .../sha1collisiondetection                         |   0\n {sha1dc => lib/sha1dc}/.gitattributes              |   0\n {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n {sha1dc => lib/sha1dc}/sha1.c                      |   0\n {sha1dc => lib/sha1dc}/sha1.h                      |   0\n {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n sha1dc_git.c => lib/sha1dc_git.c                   |   0\n sha1dc_git.h => lib/sha1dc_git.h                   |   0\n {sha256 => lib/sha256}/block/sha256.c              |   0\n {sha256 => lib/sha256}/block/sha256.h              |   0\n {sha256 => lib/sha256}/gcrypt.h                    |   0\n {sha256 => lib/sha256}/nettle.h                    |   0\n {sha256 => lib/sha256}/openssl.h                   |   0\n shallow.c => lib/shallow.c                         |   0\n shallow.h => lib/shallow.h                         |   0\n shortlog.h => lib/shortlog.h                       |   0\n sideband.c => lib/sideband.c                       |   0\n sideband.h => lib/sideband.h                       |   0\n sigchain.c => lib/sigchain.c                       |   0\n sigchain.h => lib/sigchain.h                       |   0\n simple-ipc.h => lib/simple-ipc.h                   |   0\n sparse-index.c => lib/sparse-index.c               |   0\n sparse-index.h => lib/sparse-index.h               |   0\n split-index.c => lib/split-index.c                 |   0\n split-index.h => lib/split-index.h                 |   0\n stable-qsort.c => lib/stable-qsort.c               |   0\n statinfo.c => lib/statinfo.c                       |   0\n statinfo.h => lib/statinfo.h                       |   0\n strbuf.c => lib/strbuf.c                           |   0\n strbuf.h => lib/strbuf.h                           |   0\n string-list.c => lib/string-list.c                 |   0\n string-list.h => lib/string-list.h                 |   0\n strmap.c => lib/strmap.c                           |   0\n strmap.h => lib/strmap.h                           |   0\n strvec.c => lib/strvec.c                           |   0\n strvec.h => lib/strvec.h                           |   0\n sub-process.c => lib/sub-process.c                 |   0\n sub-process.h => lib/sub-process.h                 |   0\n submodule-config.c => lib/submodule-config.c       |   0\n submodule-config.h => lib/submodule-config.h       |   0\n submodule.c => lib/submodule.c                     |   0\n submodule.h => lib/submodule.h                     |   0\n symlinks.c => lib/symlinks.c                       |   0\n symlinks.h => lib/symlinks.h                       |   0\n tag.c => lib/tag.c                                 |   0\n tag.h => lib/tag.h                                 |   0\n tar.h => lib/tar.h                                 |   0\n tempfile.c => lib/tempfile.c                       |   0\n tempfile.h => lib/tempfile.h                       |   0\n thread-utils.c => lib/thread-utils.c               |   0\n thread-utils.h => lib/thread-utils.h               |   0\n tmp-objdir.c => lib/tmp-objdir.c                   |   0\n tmp-objdir.h => lib/tmp-objdir.h                   |   0\n trace.c => lib/trace.c                             |   0\n trace.h => lib/trace.h                             |   0\n trace2.c => lib/trace2.c                           |   0\n trace2.h => lib/trace2.h                           |   0\n {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n {trace2 => lib/trace2}/tr2_dst.c                   |   0\n {trace2 => lib/trace2}/tr2_dst.h                   |   0\n {trace2 => lib/trace2}/tr2_sid.c                   |   0\n {trace2 => lib/trace2}/tr2_sid.h                   |   0\n {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n {trace2 => lib/trace2}/tr2_tls.c                   |   0\n {trace2 => lib/trace2}/tr2_tls.h                   |   0\n {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n trailer.c => lib/trailer.c                         |   0\n trailer.h => lib/trailer.h                         |   0\n transport-helper.c => lib/transport-helper.c       |   0\n transport-internal.h => lib/transport-internal.h   |   0\n transport.c => lib/transport.c                     |   0\n transport.h => lib/transport.h                     |   0\n tree-diff.c => lib/tree-diff.c                     |   0\n tree-walk.c => lib/tree-walk.c                     |   0\n tree-walk.h => lib/tree-walk.h                     |   0\n tree.c => lib/tree.c                               |   0\n tree.h => lib/tree.h                               |   0\n unicode-width.h => lib/unicode-width.h             |   0\n unix-socket.c => lib/unix-socket.c                 |   0\n unix-socket.h => lib/unix-socket.h                 |   0\n unix-stream-server.c => lib/unix-stream-server.c   |   0\n unix-stream-server.h => lib/unix-stream-server.h   |   0\n unpack-trees.c => lib/unpack-trees.c               |   0\n unpack-trees.h => lib/unpack-trees.h               |   0\n upload-pack.c => lib/upload-pack.c                 |   0\n upload-pack.h => lib/upload-pack.h                 |   0\n url.c => lib/url.c                                 |   0\n url.h => lib/url.h                                 |   0\n urlmatch.c => lib/urlmatch.c                       |   0\n urlmatch.h => lib/urlmatch.h                       |   0\n usage.c => lib/usage.c                             |   0\n userdiff.c => lib/userdiff.c                       |   0\n userdiff.h => lib/userdiff.h                       |   0\n utf8.c => lib/utf8.c                               |   0\n utf8.h => lib/utf8.h                               |   0\n varint.c => lib/varint.c                           |   0\n varint.h => lib/varint.h                           |   0\n version-def.h.in => lib/version-def.h.in           |   0\n version.c => lib/version.c                         |   0\n version.h => lib/version.h                         |   0\n versioncmp.c => lib/versioncmp.c                   |   0\n versioncmp.h => lib/versioncmp.h                   |   0\n walker.c => lib/walker.c                           |   0\n walker.h => lib/walker.h                           |   0\n wildmatch.c => lib/wildmatch.c                     |   0\n wildmatch.h => lib/wildmatch.h                     |   0\n worktree.c => lib/worktree.c                       |   0\n worktree.h => lib/worktree.h                       |   0\n wrapper.c => lib/wrapper.c                         |   0\n wrapper.h => lib/wrapper.h                         |   0\n write-or-die.c => lib/write-or-die.c               |   0\n write-or-die.h => lib/write-or-die.h               |   0\n ws.c => lib/ws.c                                   |   0\n ws.h => lib/ws.h                                   |   0\n wt-status.c => lib/wt-status.c                     |   0\n wt-status.h => lib/wt-status.h                     |   0\n xdiff-interface.c => lib/xdiff-interface.c         |   0\n xdiff-interface.h => lib/xdiff-interface.h         |   0\n {xdiff => lib/xdiff}/xdiff.h                       |   0\n {xdiff => lib/xdiff}/xdiffi.c                      |   0\n {xdiff => lib/xdiff}/xdiffi.h                      |   0\n {xdiff => lib/xdiff}/xemit.c                       |   0\n {xdiff => lib/xdiff}/xemit.h                       |   0\n {xdiff => lib/xdiff}/xhistogram.c                  |   0\n {xdiff => lib/xdiff}/xinclude.h                    |   0\n {xdiff => lib/xdiff}/xmacros.h                     |   0\n {xdiff => lib/xdiff}/xmerge.c                      |   0\n {xdiff => lib/xdiff}/xpatience.c                   |   0\n {xdiff => lib/xdiff}/xprepare.c                    |   0\n {xdiff => lib/xdiff}/xprepare.h                    |   0\n {xdiff => lib/xdiff}/xtypes.h                      |   0\n {xdiff => lib/xdiff}/xutils.c                      |   0\n {xdiff => lib/xdiff}/xutils.h                      |   0\n meson.build                                        | 700 +++++++++----------\n t/helper/test-example-tap.c                        |   2 +-\n 704 files changed, 823 insertions(+), 822 deletions(-)\n\nRange-diff versus v1:\n\n1:  906517b4f1 = 1:  12f6dbd779 t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n2:  b0fd01d713 ! 2:  7aa7c50a4e Move libgit.a sources into separate \"lib/\" directory\n    @@ Commit message\n     \n      ## .github/workflows/main.yml ##\n     @@ .github/workflows/main.yml: jobs:\n    -       uses: actions/checkout@v5\n    +       uses: actions/checkout@v6\n            with:\n              repository: 'microsoft/vcpkg'\n     -        path: 'compat/vcbuild/vcpkg'\n    @@ .github/workflows/main.yml: jobs:\n            uses: git-for-windows/get-azure-pipelines-artifact@v0\n            with:\n     @@ .github/workflows/main.yml: jobs:\n    -       uses: microsoft/setup-msbuild@v2\n    +       uses: microsoft/setup-msbuild@v3\n          - name: copy dlls to root\n            shell: cmd\n     -      run: compat\\vcbuild\\vcpkg_copy_dlls.bat release\n    @@ Makefile: FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CM\n     -LIB_OBJS += odb.o\n     -LIB_OBJS += odb/source.o\n     -LIB_OBJS += odb/source-files.o\n    +-LIB_OBJS += odb/source-inmemory.o\n    +-LIB_OBJS += odb/source-loose.o\n    +-LIB_OBJS += odb/source-packed.o\n     -LIB_OBJS += odb/streaming.o\n    +-LIB_OBJS += odb/transaction.o\n     -LIB_OBJS += oid-array.o\n     -LIB_OBJS += oidmap.o\n     -LIB_OBJS += oidset.o\n    @@ Makefile: FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CM\n     -LIB_OBJS += pack-revindex.o\n     -LIB_OBJS += pack-write.o\n     -LIB_OBJS += packfile.o\n    +-LIB_OBJS += packfile-list.o\n     -LIB_OBJS += pager.o\n     -LIB_OBJS += parallel-checkout.o\n     -LIB_OBJS += parse.o\n    @@ Makefile: FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CM\n     +LIB_OBJS += lib/odb.o\n     +LIB_OBJS += lib/odb/source.o\n     +LIB_OBJS += lib/odb/source-files.o\n    ++LIB_OBJS += lib/odb/source-inmemory.o\n    ++LIB_OBJS += lib/odb/source-loose.o\n    ++LIB_OBJS += lib/odb/source-packed.o\n     +LIB_OBJS += lib/odb/streaming.o\n    ++LIB_OBJS += lib/odb/transaction.o\n     +LIB_OBJS += lib/oid-array.o\n     +LIB_OBJS += lib/oidmap.o\n     +LIB_OBJS += lib/oidset.o\n    @@ Makefile: FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CM\n     +LIB_OBJS += lib/pack-revindex.o\n     +LIB_OBJS += lib/pack-write.o\n     +LIB_OBJS += lib/packfile.o\n    ++LIB_OBJS += lib/packfile-list.o\n     +LIB_OBJS += lib/pager.o\n     +LIB_OBJS += lib/parallel-checkout.o\n     +LIB_OBJS += lib/parse.o\n    @@ Makefile: FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CM\n     +LIB_OBJS += lib/usage.o\n     +LIB_OBJS += lib/userdiff.o\n     +LIB_OBJS += lib/utf8.o\n    - ifndef WITH_RUST\n    + ifdef NO_RUST\n     -LIB_OBJS += varint.o\n     -endif\n     -LIB_OBJS += version.o\n    @@ Makefile: BUILTIN_OBJS += builtin/write-tree.o\n      # upstream unnecessarily (making merging in future changes easier).\n     -THIRD_PARTY_SOURCES += compat/inet_ntop.c\n     -THIRD_PARTY_SOURCES += compat/inet_pton.c\n    --THIRD_PARTY_SOURCES += compat/nedmalloc/%\n     -THIRD_PARTY_SOURCES += compat/obstack.%\n     -THIRD_PARTY_SOURCES += compat/poll/%\n     -THIRD_PARTY_SOURCES += compat/regex/%\n    @@ Makefile: BUILTIN_OBJS += builtin/write-tree.o\n     -THIRD_PARTY_SOURCES += sha1dc/%\n     +THIRD_PARTY_SOURCES += lib/compat/inet_ntop.c\n     +THIRD_PARTY_SOURCES += lib/compat/inet_pton.c\n    -+THIRD_PARTY_SOURCES += lib/compat/nedmalloc/%\n     +THIRD_PARTY_SOURCES += lib/compat/obstack.%\n     +THIRD_PARTY_SOURCES += lib/compat/poll/%\n     +THIRD_PARTY_SOURCES += lib/compat/regex/%\n    @@ Makefile: ifdef UNRELIABLE_FSTAT\n      endif\n      endif\n      ifdef NATIVE_CRLF\n    -@@ Makefile: ifdef NATIVE_CRLF\n    - endif\n    - \n    - ifdef USE_NED_ALLOCATOR\n    --\tCOMPAT_CFLAGS += -Icompat/nedmalloc\n    --\tCOMPAT_OBJS += compat/nedmalloc/nedmalloc.o\n    -+\tCOMPAT_CFLAGS += -Ilib/compat/nedmalloc\n    -+\tCOMPAT_OBJS += lib/compat/nedmalloc/nedmalloc.o\n    - \tOVERRIDE_STRDUP = YesPlease\n    - endif\n    +@@ Makefile: endif\n      \n      ifdef OVERRIDE_STRDUP\n      \tCOMPAT_CFLAGS += -DOVERRIDE_STRDUP\n    @@ Makefile: endif\n      \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_DAEMON_BACKEND\n     -\tCOMPAT_OBJS += compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n     -\tCOMPAT_OBJS += compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n    --\tCOMPAT_OBJS += compat/fsmonitor/fsm-ipc-$(FSMONITOR_DAEMON_BACKEND).o\n     +\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n     +\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n    -+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-ipc-$(FSMONITOR_DAEMON_BACKEND).o\n      endif\n      \n      ifdef FSMONITOR_OS_SETTINGS\n      \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_OS_SETTINGS\n    +-\tCOMPAT_OBJS += compat/fsmonitor/fsm-ipc-$(FSMONITOR_OS_SETTINGS).o\n     -\tCOMPAT_OBJS += compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n    --\tCOMPAT_OBJS += compat/fsmonitor/fsm-path-utils-$(FSMONITOR_OS_SETTINGS).o\n    +-\tCOMPAT_OBJS += compat/fsmonitor/fsm-path-utils-$(FSMONITOR_DAEMON_BACKEND).o\n    ++\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-ipc-$(FSMONITOR_OS_SETTINGS).o\n     +\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n    -+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-path-utils-$(FSMONITOR_OS_SETTINGS).o\n    ++\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-path-utils-$(FSMONITOR_DAEMON_BACKEND).o\n      endif\n      \n      ifdef WITH_BREAKING_CHANGES\n    @@ Makefile: git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)\n     -help.sp help.s help.o: command-list.h\n     +lib/help.sp lib/help.s lib/help.o: command-list.h\n      builtin/bugreport.sp builtin/bugreport.s builtin/bugreport.o: hook-list.h\n    - builtin/hook.sp builtin/hook.s builtin/hook.o: hook-list.h\n    +-hook.sp hook.s hook.o: hook-list.h\n    ++lib/hook.sp lib/hook.s lib/hook.o: hook-list.h\n      \n    + builtin/help.sp builtin/help.s builtin/help.o: config-list.h GIT-PREFIX\n    + builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n     @@ Makefile: builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n      PAGER_ENV_SQ = $(subst ','\\'',$(PAGER_ENV))\n      PAGER_ENV_CQ = \"$(subst \",\\\",$(subst \\,\\\\,$(PAGER_ENV)))\"\n    @@ Makefile: compile_commands.json:\n      \t-DGAWK -DNO_MBSUPPORT\n      endif\n      \n    - ifdef USE_NED_ALLOCATOR\n    --compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \\\n    -+lib/compat/nedmalloc/nedmalloc.sp lib/compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \\\n    - \t-DNDEBUG -DREPLACE_SYSTEM_ALLOCATOR\n    --compat/nedmalloc/nedmalloc.sp: SP_EXTRA_FLAGS += -Wno-non-pointer-null\n    -+lib/compat/nedmalloc/nedmalloc.sp: SP_EXTRA_FLAGS += -Wno-non-pointer-null\n    - endif\n    - \n     -headless-git.o: compat/win32/headless.c GIT-CFLAGS\n     +headless-git.o: lib/compat/win32/headless.c GIT-CFLAGS\n      \t$(QUIET_CC)$(CC) $(ALL_CFLAGS) $(COMPAT_CFLAGS) \\\n    @@ config.mak.uname: ifeq ($(uname_S),Linux)\n      \tHAVE_PLATFORM_PROCINFO = YesPlease\n     -\tCOMPAT_OBJS += compat/linux/procinfo.o\n     +\tCOMPAT_OBJS += lib/compat/linux/procinfo.o\n    + \tEXTLIBS += -ldl\n      \t# centos7/rhel7 provides gcc 4.8.5 and zlib 1.2.7.\n              ifneq ($(findstring .el7.,$(uname_R)),)\n    - \t\tBASIC_CFLAGS += -std=c99\n     @@ config.mak.uname: ifeq ($(uname_S),Darwin)\n      \tNO_MEMMEM = YesPlease\n      \tUSE_ST_TIMESPEC = YesPlease\n    @@ contrib/buildsystems/CMakeLists.txt: endif()\n      \tadd_compile_definitions(HAVE_ALLOCA_H NO_POSIX_GOODIES NATIVE_CRLF NO_UNIX_SOCKETS WIN32\n      \t\t\t\t_CONSOLE DETECT_MSYS_TTY STRIP_EXTENSION=\".exe\"  NO_SYMLINK_HEAD UNRELIABLE_FSTAT\n      \t\t\t\tNOGDI OBJECT_CREATION_MODE=1 __USE_MINGW_ANSI_STDIO=0\n    - \t\t\t\tUSE_NED_ALLOCATOR OVERRIDE_STRDUP MMAP_PREVENTS_DELETE USE_WIN32_MMAP\n    + \t\t\t\tOVERRIDE_STRDUP MMAP_PREVENTS_DELETE USE_WIN32_MMAP\n      \t\t\t\tHAVE_WPGMPTR ENSURE_MSYSTEM_IS_SET HAVE_RTLGENRANDOM)\n      \tlist(APPEND compat_SOURCES\n     -\t\tcompat/mingw.c\n    @@ contrib/buildsystems/CMakeLists.txt: endif()\n     -\t\tcompat/win32/syslog.c\n     -\t\tcompat/win32/trace2_win32_process_info.c\n     -\t\tcompat/win32/dirent.c\n    --\t\tcompat/nedmalloc/nedmalloc.c\n     -\t\tcompat/strdup.c)\n     +\t\tlib/compat/mingw.c\n     +\t\tlib/compat/winansi.c\n    @@ contrib/buildsystems/CMakeLists.txt: endif()\n     +\t\tlib/compat/win32/syslog.c\n     +\t\tlib/compat/win32/trace2_win32_process_info.c\n     +\t\tlib/compat/win32/dirent.c\n    -+\t\tlib/compat/nedmalloc/nedmalloc.c\n     +\t\tlib/compat/strdup.c)\n      \tset(NO_UNIX_SOCKETS 1)\n      \n    @@ contrib/buildsystems/CMakeLists.txt: endif()\n      \t\tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n      \t\tset(SUPPORTS_SIMPLE_IPC 1)\n      \tendif()\n    -@@ contrib/buildsystems/CMakeLists.txt: endif()\n    - if(SUPPORTS_SIMPLE_IPC)\n    - \tif(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n    - \t\tadd_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-win32.c)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-win32.c)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-win32.c)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-win32.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-win32.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-win32.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-win32.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-win32.c)\n    +@@ contrib/buildsystems/CMakeLists.txt: if(SUPPORTS_SIMPLE_IPC)\n      \n    - \t\tadd_compile_definitions(HAVE_FSMONITOR_OS_SETTINGS)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-win32.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-win32.c)\n    - \telseif(CMAKE_SYSTEM_NAME STREQUAL \"Darwin\")\n    + \tif(FSMONITOR_DAEMON_BACKEND)\n      \t\tadd_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-darwin.c)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-darwin.c)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-darwin.c)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-darwin.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-darwin.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-darwin.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-darwin.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-darwin.c)\n    +-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-${FSMONITOR_DAEMON_BACKEND}.c)\n    +-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-${FSMONITOR_DAEMON_BACKEND}.c)\n    +-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-${FSMONITOR_OS_SETTINGS}.c)\n    +-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-${FSMONITOR_DAEMON_BACKEND}.c)\n    ++\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-${FSMONITOR_DAEMON_BACKEND}.c)\n    ++\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-${FSMONITOR_DAEMON_BACKEND}.c)\n    ++\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-${FSMONITOR_OS_SETTINGS}.c)\n    ++\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-${FSMONITOR_DAEMON_BACKEND}.c)\n      \n      \t\tadd_compile_definitions(HAVE_FSMONITOR_OS_SETTINGS)\n    --\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-darwin.c)\n    -+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-darwin.c)\n    +-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-${FSMONITOR_OS_SETTINGS}.c)\n    ++\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-${FSMONITOR_OS_SETTINGS}.c)\n      \tendif()\n      endif()\n      \n    @@ compat/fsmonitor/fsm-darwin-gcc.h => lib/compat/fsmonitor/fsm-darwin-gcc.h\n     \n      ## compat/fsmonitor/fsm-health-darwin.c => lib/compat/fsmonitor/fsm-health-darwin.c ##\n     \n    + ## compat/fsmonitor/fsm-health-linux.c => lib/compat/fsmonitor/fsm-health-linux.c ##\n    +\n      ## compat/fsmonitor/fsm-health-win32.c => lib/compat/fsmonitor/fsm-health-win32.c ##\n     \n      ## compat/fsmonitor/fsm-health.h => lib/compat/fsmonitor/fsm-health.h ##\n     \n    - ## compat/fsmonitor/fsm-ipc-darwin.c => lib/compat/fsmonitor/fsm-ipc-darwin.c ##\n    + ## compat/fsmonitor/fsm-ipc-unix.c => lib/compat/fsmonitor/fsm-ipc-unix.c ##\n     \n      ## compat/fsmonitor/fsm-ipc-win32.c => lib/compat/fsmonitor/fsm-ipc-win32.c ##\n     \n      ## compat/fsmonitor/fsm-listen-darwin.c => lib/compat/fsmonitor/fsm-listen-darwin.c ##\n     \n    + ## compat/fsmonitor/fsm-listen-linux.c => lib/compat/fsmonitor/fsm-listen-linux.c ##\n    +\n      ## compat/fsmonitor/fsm-listen-win32.c => lib/compat/fsmonitor/fsm-listen-win32.c ##\n     \n      ## compat/fsmonitor/fsm-listen.h => lib/compat/fsmonitor/fsm-listen.h ##\n     \n      ## compat/fsmonitor/fsm-path-utils-darwin.c => lib/compat/fsmonitor/fsm-path-utils-darwin.c ##\n     \n    + ## compat/fsmonitor/fsm-path-utils-linux.c => lib/compat/fsmonitor/fsm-path-utils-linux.c ##\n    +\n      ## compat/fsmonitor/fsm-path-utils-win32.c => lib/compat/fsmonitor/fsm-path-utils-win32.c ##\n     \n    - ## compat/fsmonitor/fsm-settings-darwin.c => lib/compat/fsmonitor/fsm-settings-darwin.c ##\n    + ## compat/fsmonitor/fsm-settings-unix.c => lib/compat/fsmonitor/fsm-settings-unix.c ##\n     \n      ## compat/fsmonitor/fsm-settings-win32.c => lib/compat/fsmonitor/fsm-settings-win32.c ##\n     \n    @@ compat/msvc.c => lib/compat/msvc.c\n     \n      ## compat/msvc.h => lib/compat/msvc.h ##\n     \n    - ## compat/nedmalloc/License.txt => lib/compat/nedmalloc/License.txt ##\n    -\n    - ## compat/nedmalloc/Readme.txt => lib/compat/nedmalloc/Readme.txt ##\n    -\n    - ## compat/nedmalloc/malloc.c.h => lib/compat/nedmalloc/malloc.c.h ##\n    -\n    - ## compat/nedmalloc/nedmalloc.c => lib/compat/nedmalloc/nedmalloc.c ##\n    -\n    - ## compat/nedmalloc/nedmalloc.h => lib/compat/nedmalloc/nedmalloc.h ##\n    -\n      ## compat/nonblock.c => lib/compat/nonblock.c ##\n     \n      ## compat/nonblock.h => lib/compat/nonblock.h ##\n    @@ compat/win32/dirent.c => lib/compat/win32/dirent.c\n     \n      ## compat/win32/dirent.h => lib/compat/win32/dirent.h ##\n     \n    + ## compat/win32/exit-process.h => lib/compat/win32/exit-process.h ##\n    +\n      ## compat/win32/flush.c => lib/compat/win32/flush.c ##\n     \n      ## compat/win32/git.manifest => lib/compat/win32/git.manifest ##\n    @@ odb/source-files.c => lib/odb/source-files.c\n     \n      ## odb/source-files.h => lib/odb/source-files.h ##\n     \n    + ## odb/source-inmemory.c => lib/odb/source-inmemory.c ##\n    +\n    + ## odb/source-inmemory.h => lib/odb/source-inmemory.h ##\n    +\n    + ## odb/source-loose.c => lib/odb/source-loose.c ##\n    +\n    + ## odb/source-loose.h => lib/odb/source-loose.h ##\n    +\n    + ## odb/source-packed.c => lib/odb/source-packed.c ##\n    +\n    + ## odb/source-packed.h => lib/odb/source-packed.h ##\n    +\n      ## odb/source.c => lib/odb/source.c ##\n     \n      ## odb/source.h => lib/odb/source.h ##\n    @@ odb/streaming.c => lib/odb/streaming.c\n     \n      ## odb/streaming.h => lib/odb/streaming.h ##\n     \n    + ## odb/transaction.c => lib/odb/transaction.c ##\n    +\n    + ## odb/transaction.h => lib/odb/transaction.h ##\n    +\n      ## oid-array.c => lib/oid-array.c ##\n     \n      ## oid-array.h => lib/oid-array.h ##\n    @@ pack-write.c => lib/pack-write.c\n     \n      ## pack.h => lib/pack.h ##\n     \n    + ## packfile-list.c => lib/packfile-list.c ##\n    +\n    + ## packfile-list.h => lib/packfile-list.h ##\n    +\n      ## packfile.c => lib/packfile.c ##\n     \n      ## packfile.h => lib/packfile.h ##\n    @@ meson.build: version_gen_environment.set('GIT_VERSION', get_option('version'))\n     -  'odb.c',\n     -  'odb/source.c',\n     -  'odb/source-files.c',\n    +-  'odb/source-inmemory.c',\n    +-  'odb/source-loose.c',\n    +-  'odb/source-packed.c',\n     -  'odb/streaming.c',\n    +-  'odb/transaction.c',\n     -  'oid-array.c',\n     -  'oidmap.c',\n     -  'oidset.c',\n    @@ meson.build: version_gen_environment.set('GIT_VERSION', get_option('version'))\n     -  'pack-revindex.c',\n     -  'pack-write.c',\n     -  'packfile.c',\n    +-  'packfile-list.c',\n     -  'pager.c',\n     -  'parallel-checkout.c',\n     -  'parse.c',\n    @@ meson.build: version_gen_environment.set('GIT_VERSION', get_option('version'))\n     +  'lib/odb.c',\n     +  'lib/odb/source.c',\n     +  'lib/odb/source-files.c',\n    ++  'lib/odb/source-inmemory.c',\n    ++  'lib/odb/source-loose.c',\n    ++  'lib/odb/source-packed.c',\n     +  'lib/odb/streaming.c',\n    ++  'lib/odb/transaction.c',\n     +  'lib/oid-array.c',\n     +  'lib/oidmap.c',\n     +  'lib/oidset.c',\n    @@ meson.build: version_gen_environment.set('GIT_VERSION', get_option('version'))\n     +  'lib/pack-revindex.c',\n     +  'lib/pack-write.c',\n     +  'lib/packfile.c',\n    ++  'lib/packfile-list.c',\n     +  'lib/pager.c',\n     +  'lib/parallel-checkout.c',\n     +  'lib/parse.c',\n    @@ meson.build: version_gen_environment.set('GIT_VERSION', get_option('version'))\n      \n      libgit_sources += custom_target(\n     @@ meson.build: builtin_sources = [\n    + ]\n      \n      third_party_excludes = [\n    -   ':!contrib',\n    +-  ':!contrib',\n     -  ':!compat/inet_ntop.c',\n     -  ':!compat/inet_pton.c',\n    --  ':!compat/nedmalloc',\n     -  ':!compat/obstack.*',\n     -  ':!compat/poll',\n     -  ':!compat/regex',\n     -  ':!sha1collisiondetection',\n     -  ':!sha1dc',\n    ++  ':!lib/contrib',\n     +  ':!lib/compat/inet_ntop.c',\n     +  ':!lib/compat/inet_pton.c',\n    -+  ':!lib/compat/nedmalloc',\n     +  ':!lib/compat/obstack.*',\n     +  ':!lib/compat/poll',\n     +  ':!lib/compat/regex',\n     +  ':!lib/sha1collisiondetection',\n     +  ':!lib/sha1dc',\n    -+  ':!lib/xdiff',\n        ':!t/unit-tests/clar',\n        ':!t/t[0-9][0-9][0-9][0-9]*',\n     -  ':!xdiff',\n    @@ meson.build: endif\n     -    'compat/win32/pthread.c',\n     -    'compat/win32/syslog.c',\n     -    'compat/win32mmap.c',\n    --    'compat/nedmalloc/nedmalloc.c',\n     +    'lib/compat/winansi.c',\n     +    'lib/compat/win32/dirent.c',\n     +    'lib/compat/win32/flush.c',\n    @@ meson.build: endif\n     +    'lib/compat/win32/pthread.c',\n     +    'lib/compat/win32/syslog.c',\n     +    'lib/compat/win32mmap.c',\n    -+    'lib/compat/nedmalloc/nedmalloc.c',\n        ]\n      \n        libgit_c_args += [\n    @@ meson.build: if fsmonitor_backend != ''\n      \n        compat_sources += [\n     -    'compat/fsmonitor/fsm-health-' + fsmonitor_backend + '.c',\n    --    'compat/fsmonitor/fsm-ipc-' + fsmonitor_backend + '.c',\n    +-    'compat/fsmonitor/fsm-ipc-' + fsmonitor_os + '.c',\n     -    'compat/fsmonitor/fsm-listen-' + fsmonitor_backend + '.c',\n     -    'compat/fsmonitor/fsm-path-utils-' + fsmonitor_backend + '.c',\n    --    'compat/fsmonitor/fsm-settings-' + fsmonitor_backend + '.c',\n    +-    'compat/fsmonitor/fsm-settings-' + fsmonitor_os + '.c',\n     +    'lib/compat/fsmonitor/fsm-health-' + fsmonitor_backend + '.c',\n    -+    'lib/compat/fsmonitor/fsm-ipc-' + fsmonitor_backend + '.c',\n    ++    'lib/compat/fsmonitor/fsm-ipc-' + fsmonitor_os + '.c',\n     +    'lib/compat/fsmonitor/fsm-listen-' + fsmonitor_backend + '.c',\n     +    'lib/compat/fsmonitor/fsm-path-utils-' + fsmonitor_backend + '.c',\n    -+    'lib/compat/fsmonitor/fsm-settings-' + fsmonitor_backend + '.c',\n    ++    'lib/compat/fsmonitor/fsm-settings-' + fsmonitor_os + '.c',\n        ]\n      endif\n      build_options_config.set_quoted('FSMONITOR_DAEMON_BACKEND', fsmonitor_backend)\n    @@ meson.build: if get_option('docs') != []\n      ]\n      \n      if sha1_backend != 'openssl'\n    +-  exclude_from_check_headers += 'sha1/openssl.h'\n    ++  exclude_from_check_headers += 'lib/sha1/openssl.h'\n    + endif\n    + if sha256_backend != 'openssl'\n    +-  exclude_from_check_headers += 'sha256/openssl.h'\n    ++  exclude_from_check_headers += 'lib/sha256/openssl.h'\n    + endif\n    + if sha256_backend != 'nettle'\n    +-  exclude_from_check_headers += 'sha256/nettle.h'\n    ++  exclude_from_check_headers += 'lib/sha256/nettle.h'\n    + endif\n    + if sha256_backend != 'gcrypt'\n    +-  exclude_from_check_headers += 'sha256/gcrypt.h'\n    ++  exclude_from_check_headers += 'lib/sha256/gcrypt.h'\n    + endif\n    + \n    + if headers_to_check.length() != 0 and compiler.get_argument_syntax() == 'gcc'\n    +@@ meson.build: if headers_to_check.length() != 0 and compiler.get_argument_syntax() == 'gcc'\n    +         compiler.cmd_array(),\n    +         libgit_c_args,\n    +         '-I', meson.project_source_root(),\n    ++        '-I', meson.project_source_root() / 'lib',\n    +         '-I', meson.project_source_root() / 't/unit-tests',\n    +         '-o', '/dev/null',\n    +         '-c', '-xc',\n\n---\nbase-commit: 0309c6da48e2f94a72c9cee6e95ac6a1d0d2c965\nchange-id: 20260415-pks-libgit-in-subdir-d8eec849cd48\n\n"},{"id":"546164","messageId":"20260622-pks-libgit-in-subdir-v2-1-cb946c51ee7b@pks.im","threadId":"65493","inReplyTo":"20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im","subject":"[PATCH RFC v2 1/2] t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-06-22T10:38:21Z","receivedAt":"2026-06-22T10:38:37Z","isPatch":true,"body":"In the next commit we're about to introduce a new \"lib/\" directory and\nmove all of our files into it. With this split the compiler won't be\nable to find one of the includes in \"test-example-tap.c\" anymore. Adjust\nit to a relative include to prepare for this change.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n t/helper/test-example-tap.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/helper/test-example-tap.c b/t/helper/test-example-tap.c\nindex 998a1f0b42..50d46669d1 100644\n--- a/t/helper/test-example-tap.c\n+++ b/t/helper/test-example-tap.c\n@@ -1,5 +1,5 @@\n #include \"test-tool.h\"\n-#include \"t/unit-tests/test-lib.h\"\n+#include \"../unit-tests/test-lib.h\"\n \n /*\n  * The purpose of this \"unit test\" is to verify a few invariants of the unit\n\n-- \n2.55.0.rc1.745.g43192e7977.dirty\n\n"},{"id":"546165","messageId":"20260622-pks-libgit-in-subdir-v2-2-cb946c51ee7b@pks.im","threadId":"65493","inReplyTo":"20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im","subject":"[PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-06-22T10:38:22Z","receivedAt":"2026-06-22T10:38:39Z","isPatch":true,"body":"The Git project is not exactly the easiest project to get started in:\nit's written in C and POSIX shell, with bits of Perl, Rust and other\nlanguages sprinkled into it. On top of that, the project has grown\nsomewhat organically over time, making the codebase hard to navigate.\n\nThese are problems that we're aware of, and there have been and still\nare efforts to clean up some of the technical debt that is natural to\nexist an a project that is more than 20 years old. Furthermore, we\nprovide resources to newcomers that help them out like our coding\nguidelines, code of conduct or \"MyFirstContribution.adoc\".\n\nBut there is a rather practical problem: finding your way around in our\nproject's tree is not easy. Doing a directory listing in the top-level\ndirectory will present you with more than 550 files, which makes it\nextremely hard for a newcomer to figure out what files they are even\nsupposed to look at. This makes the onboarding experience somewhat\nharder than it really needs to be. This isn't only a problem for\nnewcomers though, as I myself struggle to find the files I am looking\nfor because of the sheer number of files.\n\nBesides the problem of discoverability it also creates a problem of\nstructure. It is not obvious at all which files are part of \"libgit.a\"\nand which files are only linked into our final executables. So while we\nhave this split in our build systems, that split is not evident at all\nin our tree.\n\nIntroduce a new \"lib/\" directory and move all of our sources for\n\"libgit.a\" into it to fix these issues. It makes the split we have\nevident and reduces the number of files in our top-level tree from 550\nfiles to ~80 files.\n\nThis is still a lot of files, but it's significantly easier to navigate\nalready. Furthermore, we can further iterate after this step and think\nabout introducing a better structure for remaining files, as well.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml                         |   8 +-\n .gitmodules                                        |   2 +-\n Documentation/Makefile                             |   4 +-\n Makefile                                           | 764 ++++++++++-----------\n config.mak.uname                                   |  52 +-\n contrib/buildsystems/CMakeLists.txt                |  95 +--\n git.rc.in                                          |   2 +-\n abspath.c => lib/abspath.c                         |   0\n abspath.h => lib/abspath.h                         |   0\n add-interactive.c => lib/add-interactive.c         |   0\n add-interactive.h => lib/add-interactive.h         |   0\n add-patch.c => lib/add-patch.c                     |   0\n add-patch.h => lib/add-patch.h                     |   0\n advice.c => lib/advice.c                           |   0\n advice.h => lib/advice.h                           |   0\n alias.c => lib/alias.c                             |   0\n alias.h => lib/alias.h                             |   0\n alloc.c => lib/alloc.c                             |   0\n alloc.h => lib/alloc.h                             |   0\n apply.c => lib/apply.c                             |   0\n apply.h => lib/apply.h                             |   0\n archive-tar.c => lib/archive-tar.c                 |   0\n archive-zip.c => lib/archive-zip.c                 |   0\n archive.c => lib/archive.c                         |   0\n archive.h => lib/archive.h                         |   0\n attr.c => lib/attr.c                               |   0\n attr.h => lib/attr.h                               |   0\n banned.h => lib/banned.h                           |   0\n base85.c => lib/base85.c                           |   0\n base85.h => lib/base85.h                           |   0\n bisect.c => lib/bisect.c                           |   0\n bisect.h => lib/bisect.h                           |   0\n blame.c => lib/blame.c                             |   0\n blame.h => lib/blame.h                             |   0\n blob.c => lib/blob.c                               |   0\n blob.h => lib/blob.h                               |   0\n {block-sha1 => lib/block-sha1}/sha1.c              |   0\n {block-sha1 => lib/block-sha1}/sha1.h              |   0\n bloom.c => lib/bloom.c                             |   0\n bloom.h => lib/bloom.h                             |   0\n branch.c => lib/branch.c                           |   0\n branch.h => lib/branch.h                           |   0\n builtin.h => lib/builtin.h                         |   0\n bundle-uri.c => lib/bundle-uri.c                   |   0\n bundle-uri.h => lib/bundle-uri.h                   |   0\n bundle.c => lib/bundle.c                           |   0\n bundle.h => lib/bundle.h                           |   0\n cache-tree.c => lib/cache-tree.c                   |   0\n cache-tree.h => lib/cache-tree.h                   |   0\n cbtree.c => lib/cbtree.c                           |   0\n cbtree.h => lib/cbtree.h                           |   0\n chdir-notify.c => lib/chdir-notify.c               |   0\n chdir-notify.h => lib/chdir-notify.h               |   0\n checkout.c => lib/checkout.c                       |   0\n checkout.h => lib/checkout.h                       |   0\n chunk-format.c => lib/chunk-format.c               |   0\n chunk-format.h => lib/chunk-format.h               |   0\n color.c => lib/color.c                             |   0\n color.h => lib/color.h                             |   0\n column.c => lib/column.c                           |   0\n column.h => lib/column.h                           |   0\n combine-diff.c => lib/combine-diff.c               |   0\n commit-graph.c => lib/commit-graph.c               |   0\n commit-graph.h => lib/commit-graph.h               |   0\n commit-reach.c => lib/commit-reach.c               |   0\n commit-reach.h => lib/commit-reach.h               |   0\n commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n commit-slab.h => lib/commit-slab.h                 |   0\n commit.c => lib/commit.c                           |   0\n commit.h => lib/commit.h                           |   0\n common-exit.c => lib/common-exit.c                 |   0\n common-init.c => lib/common-init.c                 |   0\n common-init.h => lib/common-init.h                 |   0\n {compat => lib/compat}/.gitattributes              |   0\n {compat => lib/compat}/access.c                    |   0\n {compat => lib/compat}/apple-common-crypto.h       |   0\n {compat => lib/compat}/basename.c                  |   0\n {compat => lib/compat}/bswap.h                     |   0\n {compat => lib/compat}/compiler.h                  |   0\n {compat => lib/compat}/darwin/procinfo.c           |   0\n {compat => lib/compat}/disk.h                      |   0\n {compat => lib/compat}/fileno.c                    |   0\n {compat => lib/compat}/fopen.c                     |   0\n {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n .../compat}/fsmonitor/fsm-health-linux.c           |   0\n .../compat}/fsmonitor/fsm-health-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-unix.c    |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n .../compat}/fsmonitor/fsm-listen-linux.c           |   0\n .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n .../compat}/fsmonitor/fsm-path-utils-linux.c       |   0\n .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n .../compat}/fsmonitor/fsm-settings-unix.c          |   0\n .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n {compat => lib/compat}/hstrerror.c                 |   0\n {compat => lib/compat}/inet_ntop.c                 |   0\n {compat => lib/compat}/inet_pton.c                 |   0\n {compat => lib/compat}/linux/procinfo.c            |   0\n {compat => lib/compat}/memmem.c                    |   0\n {compat => lib/compat}/mingw-posix.h               |   0\n {compat => lib/compat}/mingw.c                     |   0\n {compat => lib/compat}/mingw.h                     |   0\n {compat => lib/compat}/mkdir.c                     |   0\n {compat => lib/compat}/mmap.c                      |   0\n {compat => lib/compat}/msvc-posix.h                |   0\n {compat => lib/compat}/msvc.c                      |   0\n {compat => lib/compat}/msvc.h                      |   0\n {compat => lib/compat}/nonblock.c                  |   0\n {compat => lib/compat}/nonblock.h                  |   0\n {compat => lib/compat}/obstack.c                   |   0\n {compat => lib/compat}/obstack.h                   |   0\n {compat => lib/compat}/open.c                      |   0\n {compat => lib/compat}/poll/poll.c                 |   0\n {compat => lib/compat}/poll/poll.h                 |   0\n {compat => lib/compat}/posix.h                     |   0\n {compat => lib/compat}/pread.c                     |   0\n {compat => lib/compat}/precompose_utf8.c           |   0\n {compat => lib/compat}/precompose_utf8.h           |   0\n {compat => lib/compat}/qsort_s.c                   |   0\n {compat => lib/compat}/regcomp_enhanced.c          |   0\n {compat => lib/compat}/regex/regcomp.c             |   0\n {compat => lib/compat}/regex/regex.c               |   0\n {compat => lib/compat}/regex/regex.h               |   0\n {compat => lib/compat}/regex/regex_internal.c      |   0\n {compat => lib/compat}/regex/regex_internal.h      |   0\n {compat => lib/compat}/regex/regexec.c             |   0\n {compat => lib/compat}/setenv.c                    |   0\n {compat => lib/compat}/sha1-chunked.c              |   0\n {compat => lib/compat}/sha1-chunked.h              |   0\n {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n {compat => lib/compat}/snprintf.c                  |   0\n {compat => lib/compat}/stat.c                      |   0\n {compat => lib/compat}/strcasestr.c                |   0\n {compat => lib/compat}/strdup.c                    |   0\n {compat => lib/compat}/strlcpy.c                   |   0\n {compat => lib/compat}/strtoimax.c                 |   0\n {compat => lib/compat}/strtoumax.c                 |   0\n {compat => lib/compat}/stub/procinfo.c             |   0\n {compat => lib/compat}/terminal.c                  |   0\n {compat => lib/compat}/terminal.h                  |   0\n {compat => lib/compat}/unsetenv.c                  |   0\n {compat => lib/compat}/vcbuild/.gitignore          |   0\n {compat => lib/compat}/vcbuild/README              |  10 +-\n {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n {compat => lib/compat}/vcbuild/include/utime.h     |   0\n {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n {compat => lib/compat}/win32.h                     |   0\n {compat => lib/compat}/win32/alloca.h              |   0\n {compat => lib/compat}/win32/dirent.c              |   0\n {compat => lib/compat}/win32/dirent.h              |   0\n {compat => lib/compat}/win32/exit-process.h        |   0\n {compat => lib/compat}/win32/flush.c               |   0\n {compat => lib/compat}/win32/git.manifest          |   0\n {compat => lib/compat}/win32/headless.c            |   0\n {compat => lib/compat}/win32/lazyload.h            |   0\n {compat => lib/compat}/win32/path-utils.c          |   0\n {compat => lib/compat}/win32/path-utils.h          |   0\n {compat => lib/compat}/win32/pthread.c             |   0\n {compat => lib/compat}/win32/pthread.h             |   0\n {compat => lib/compat}/win32/syslog.c              |   0\n {compat => lib/compat}/win32/syslog.h              |   0\n .../compat}/win32/trace2_win32_process_info.c      |   0\n {compat => lib/compat}/win32mmap.c                 |   0\n {compat => lib/compat}/winansi.c                   |   0\n {compat => lib/compat}/zlib-compat.h               |   0\n .../compiler-tricks}/not-constant.c                |   0\n config.c => lib/config.c                           |   0\n config.h => lib/config.h                           |   0\n connect.c => lib/connect.c                         |   0\n connect.h => lib/connect.h                         |   0\n connected.c => lib/connected.c                     |   0\n connected.h => lib/connected.h                     |   0\n convert.c => lib/convert.c                         |   0\n convert.h => lib/convert.h                         |   0\n copy.c => lib/copy.c                               |   0\n copy.h => lib/copy.h                               |   0\n credential.c => lib/credential.c                   |   0\n credential.h => lib/credential.h                   |   0\n csum-file.c => lib/csum-file.c                     |   0\n csum-file.h => lib/csum-file.h                     |   0\n ctype.c => lib/ctype.c                             |   0\n date.c => lib/date.c                               |   0\n date.h => lib/date.h                               |   0\n decorate.c => lib/decorate.c                       |   0\n decorate.h => lib/decorate.h                       |   0\n delta-islands.c => lib/delta-islands.c             |   0\n delta-islands.h => lib/delta-islands.h             |   0\n delta.h => lib/delta.h                             |   0\n diagnose.c => lib/diagnose.c                       |   0\n diagnose.h => lib/diagnose.h                       |   0\n diff-delta.c => lib/diff-delta.c                   |   0\n diff-lib.c => lib/diff-lib.c                       |   0\n diff-merges.c => lib/diff-merges.c                 |   0\n diff-merges.h => lib/diff-merges.h                 |   0\n diff-no-index.c => lib/diff-no-index.c             |   0\n diff.c => lib/diff.c                               |   0\n diff.h => lib/diff.h                               |   0\n diffcore-break.c => lib/diffcore-break.c           |   0\n diffcore-delta.c => lib/diffcore-delta.c           |   0\n diffcore-order.c => lib/diffcore-order.c           |   0\n diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n diffcore-rename.c => lib/diffcore-rename.c         |   0\n diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n diffcore.h => lib/diffcore.h                       |   0\n dir-iterator.c => lib/dir-iterator.c               |   0\n dir-iterator.h => lib/dir-iterator.h               |   0\n dir.c => lib/dir.c                                 |   0\n dir.h => lib/dir.h                                 |   0\n editor.c => lib/editor.c                           |   0\n editor.h => lib/editor.h                           |   0\n entry.c => lib/entry.c                             |   0\n entry.h => lib/entry.h                             |   0\n environment.c => lib/environment.c                 |   0\n environment.h => lib/environment.h                 |   0\n {ewah => lib/ewah}/bitmap.c                        |   0\n {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n {ewah => lib/ewah}/ewah_io.c                       |   0\n {ewah => lib/ewah}/ewah_rlw.c                      |   0\n {ewah => lib/ewah}/ewok.h                          |   0\n {ewah => lib/ewah}/ewok_rlw.h                      |   0\n exec-cmd.c => lib/exec-cmd.c                       |   0\n exec-cmd.h => lib/exec-cmd.h                       |   0\n fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n fetch-pack.c => lib/fetch-pack.c                   |   0\n fetch-pack.h => lib/fetch-pack.h                   |   0\n fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n for-each-ref.h => lib/for-each-ref.h               |   0\n fsck.c => lib/fsck.c                               |   0\n fsck.h => lib/fsck.h                               |   0\n fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n .../fsmonitor-path-utils.h                         |   0\n fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n fsmonitor.c => lib/fsmonitor.c                     |   0\n fsmonitor.h => lib/fsmonitor.h                     |   0\n gettext.c => lib/gettext.c                         |   0\n gettext.h => lib/gettext.h                         |   0\n git-compat-util.h => lib/git-compat-util.h         |   0\n git-curl-compat.h => lib/git-curl-compat.h         |   0\n git-zlib.c => lib/git-zlib.c                       |   0\n git-zlib.h => lib/git-zlib.h                       |   0\n gpg-interface.c => lib/gpg-interface.c             |   0\n gpg-interface.h => lib/gpg-interface.h             |   0\n graph.c => lib/graph.c                             |   0\n graph.h => lib/graph.h                             |   0\n grep.c => lib/grep.c                               |   0\n grep.h => lib/grep.h                               |   0\n hash-lookup.c => lib/hash-lookup.c                 |   0\n hash-lookup.h => lib/hash-lookup.h                 |   0\n hash.c => lib/hash.c                               |   0\n hash.h => lib/hash.h                               |   0\n hashmap.c => lib/hashmap.c                         |   0\n hashmap.h => lib/hashmap.h                         |   0\n help.c => lib/help.c                               |   0\n help.h => lib/help.h                               |   0\n hex-ll.c => lib/hex-ll.c                           |   0\n hex-ll.h => lib/hex-ll.h                           |   0\n hex.c => lib/hex.c                                 |   0\n hex.h => lib/hex.h                                 |   0\n hook.c => lib/hook.c                               |   0\n hook.h => lib/hook.h                               |   0\n http-walker.c => lib/http-walker.c                 |   0\n http.c => lib/http.c                               |   0\n http.h => lib/http.h                               |   0\n ident.c => lib/ident.c                             |   0\n ident.h => lib/ident.h                             |   0\n iterator.h => lib/iterator.h                       |   0\n json-writer.c => lib/json-writer.c                 |   0\n json-writer.h => lib/json-writer.h                 |   0\n khash.h => lib/khash.h                             |   0\n kwset.c => lib/kwset.c                             |   0\n kwset.h => lib/kwset.h                             |   0\n levenshtein.c => lib/levenshtein.c                 |   0\n levenshtein.h => lib/levenshtein.h                 |   0\n line-log.c => lib/line-log.c                       |   0\n line-log.h => lib/line-log.h                       |   0\n line-range.c => lib/line-range.c                   |   0\n line-range.h => lib/line-range.h                   |   0\n linear-assignment.c => lib/linear-assignment.c     |   0\n linear-assignment.h => lib/linear-assignment.h     |   0\n .../list-objects-filter-options.c                  |   0\n .../list-objects-filter-options.h                  |   0\n list-objects-filter.c => lib/list-objects-filter.c |   0\n list-objects-filter.h => lib/list-objects-filter.h |   0\n list-objects.c => lib/list-objects.c               |   0\n list-objects.h => lib/list-objects.h               |   0\n list.h => lib/list.h                               |   0\n lockfile.c => lib/lockfile.c                       |   0\n lockfile.h => lib/lockfile.h                       |   0\n log-tree.c => lib/log-tree.c                       |   0\n log-tree.h => lib/log-tree.h                       |   0\n loose.c => lib/loose.c                             |   0\n loose.h => lib/loose.h                             |   0\n ls-refs.c => lib/ls-refs.c                         |   0\n ls-refs.h => lib/ls-refs.h                         |   0\n mailinfo.c => lib/mailinfo.c                       |   0\n mailinfo.h => lib/mailinfo.h                       |   0\n mailmap.c => lib/mailmap.c                         |   0\n mailmap.h => lib/mailmap.h                         |   0\n match-trees.c => lib/match-trees.c                 |   0\n match-trees.h => lib/match-trees.h                 |   0\n mem-pool.c => lib/mem-pool.c                       |   0\n mem-pool.h => lib/mem-pool.h                       |   0\n merge-blobs.c => lib/merge-blobs.c                 |   0\n merge-blobs.h => lib/merge-blobs.h                 |   0\n merge-ll.c => lib/merge-ll.c                       |   0\n merge-ll.h => lib/merge-ll.h                       |   0\n merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n merge-ort.c => lib/merge-ort.c                     |   0\n merge-ort.h => lib/merge-ort.h                     |   0\n merge.c => lib/merge.c                             |   0\n merge.h => lib/merge.h                             |   0\n mergesort.h => lib/mergesort.h                     |   0\n midx-write.c => lib/midx-write.c                   |   0\n midx.c => lib/midx.c                               |   0\n midx.h => lib/midx.h                               |   0\n name-hash.c => lib/name-hash.c                     |   0\n name-hash.h => lib/name-hash.h                     |   0\n {negotiator => lib/negotiator}/default.c           |   0\n {negotiator => lib/negotiator}/default.h           |   0\n {negotiator => lib/negotiator}/noop.c              |   0\n {negotiator => lib/negotiator}/noop.h              |   0\n {negotiator => lib/negotiator}/skipping.c          |   0\n {negotiator => lib/negotiator}/skipping.h          |   0\n notes-cache.c => lib/notes-cache.c                 |   0\n notes-cache.h => lib/notes-cache.h                 |   0\n notes-merge.c => lib/notes-merge.c                 |   0\n notes-merge.h => lib/notes-merge.h                 |   0\n notes-utils.c => lib/notes-utils.c                 |   0\n notes-utils.h => lib/notes-utils.h                 |   0\n notes.c => lib/notes.c                             |   0\n notes.h => lib/notes.h                             |   0\n object-file-convert.c => lib/object-file-convert.c |   0\n object-file-convert.h => lib/object-file-convert.h |   0\n object-file.c => lib/object-file.c                 |   0\n object-file.h => lib/object-file.h                 |   0\n object-name.c => lib/object-name.c                 |   0\n object-name.h => lib/object-name.h                 |   0\n object.c => lib/object.c                           |   0\n object.h => lib/object.h                           |   0\n odb.c => lib/odb.c                                 |   0\n odb.h => lib/odb.h                                 |   0\n {odb => lib/odb}/source-files.c                    |   0\n {odb => lib/odb}/source-files.h                    |   0\n {odb => lib/odb}/source-inmemory.c                 |   0\n {odb => lib/odb}/source-inmemory.h                 |   0\n {odb => lib/odb}/source-loose.c                    |   0\n {odb => lib/odb}/source-loose.h                    |   0\n {odb => lib/odb}/source-packed.c                   |   0\n {odb => lib/odb}/source-packed.h                   |   0\n {odb => lib/odb}/source.c                          |   0\n {odb => lib/odb}/source.h                          |   0\n {odb => lib/odb}/streaming.c                       |   0\n {odb => lib/odb}/streaming.h                       |   0\n {odb => lib/odb}/transaction.c                     |   0\n {odb => lib/odb}/transaction.h                     |   0\n oid-array.c => lib/oid-array.c                     |   0\n oid-array.h => lib/oid-array.h                     |   0\n oidmap.c => lib/oidmap.c                           |   0\n oidmap.h => lib/oidmap.h                           |   0\n oidset.c => lib/oidset.c                           |   0\n oidset.h => lib/oidset.h                           |   0\n oidtree.c => lib/oidtree.c                         |   0\n oidtree.h => lib/oidtree.h                         |   0\n pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n pack-bitmap.c => lib/pack-bitmap.c                 |   0\n pack-bitmap.h => lib/pack-bitmap.h                 |   0\n pack-check.c => lib/pack-check.c                   |   0\n pack-mtimes.c => lib/pack-mtimes.c                 |   0\n pack-mtimes.h => lib/pack-mtimes.h                 |   0\n pack-objects.c => lib/pack-objects.c               |   0\n pack-objects.h => lib/pack-objects.h               |   0\n pack-refs.c => lib/pack-refs.c                     |   0\n pack-refs.h => lib/pack-refs.h                     |   0\n pack-revindex.c => lib/pack-revindex.c             |   0\n pack-revindex.h => lib/pack-revindex.h             |   0\n pack-write.c => lib/pack-write.c                   |   0\n pack.h => lib/pack.h                               |   0\n packfile-list.c => lib/packfile-list.c             |   0\n packfile-list.h => lib/packfile-list.h             |   0\n packfile.c => lib/packfile.c                       |   0\n packfile.h => lib/packfile.h                       |   0\n pager.c => lib/pager.c                             |   0\n pager.h => lib/pager.h                             |   0\n parallel-checkout.c => lib/parallel-checkout.c     |   0\n parallel-checkout.h => lib/parallel-checkout.h     |   0\n parse-options-cb.c => lib/parse-options-cb.c       |   0\n parse-options.c => lib/parse-options.c             |   0\n parse-options.h => lib/parse-options.h             |   0\n parse.c => lib/parse.c                             |   0\n parse.h => lib/parse.h                             |   0\n patch-delta.c => lib/patch-delta.c                 |   0\n patch-ids.c => lib/patch-ids.c                     |   0\n patch-ids.h => lib/patch-ids.h                     |   0\n path-walk.c => lib/path-walk.c                     |   0\n path-walk.h => lib/path-walk.h                     |   0\n path.c => lib/path.c                               |   0\n path.h => lib/path.h                               |   0\n pathspec.c => lib/pathspec.c                       |   0\n pathspec.h => lib/pathspec.h                       |   0\n pkt-line.c => lib/pkt-line.c                       |   0\n pkt-line.h => lib/pkt-line.h                       |   0\n preload-index.c => lib/preload-index.c             |   0\n preload-index.h => lib/preload-index.h             |   0\n pretty.c => lib/pretty.c                           |   0\n pretty.h => lib/pretty.h                           |   0\n prio-queue.c => lib/prio-queue.c                   |   0\n prio-queue.h => lib/prio-queue.h                   |   0\n progress.c => lib/progress.c                       |   0\n progress.h => lib/progress.h                       |   0\n promisor-remote.c => lib/promisor-remote.c         |   0\n promisor-remote.h => lib/promisor-remote.h         |   0\n prompt.c => lib/prompt.c                           |   0\n prompt.h => lib/prompt.h                           |   0\n protocol-caps.c => lib/protocol-caps.c             |   0\n protocol-caps.h => lib/protocol-caps.h             |   0\n protocol.c => lib/protocol.c                       |   0\n protocol.h => lib/protocol.h                       |   0\n prune-packed.c => lib/prune-packed.c               |   0\n prune-packed.h => lib/prune-packed.h               |   0\n pseudo-merge.c => lib/pseudo-merge.c               |   0\n pseudo-merge.h => lib/pseudo-merge.h               |   0\n quote.c => lib/quote.c                             |   0\n quote.h => lib/quote.h                             |   0\n range-diff.c => lib/range-diff.c                   |   0\n range-diff.h => lib/range-diff.h                   |   0\n reachable.c => lib/reachable.c                     |   0\n reachable.h => lib/reachable.h                     |   0\n read-cache-ll.h => lib/read-cache-ll.h             |   0\n read-cache.c => lib/read-cache.c                   |   0\n read-cache.h => lib/read-cache.h                   |   0\n rebase-interactive.c => lib/rebase-interactive.c   |   0\n rebase-interactive.h => lib/rebase-interactive.h   |   0\n rebase.c => lib/rebase.c                           |   0\n rebase.h => lib/rebase.h                           |   0\n ref-filter.c => lib/ref-filter.c                   |   0\n ref-filter.h => lib/ref-filter.h                   |   0\n reflog-walk.c => lib/reflog-walk.c                 |   0\n reflog-walk.h => lib/reflog-walk.h                 |   0\n reflog.c => lib/reflog.c                           |   0\n reflog.h => lib/reflog.h                           |   0\n refs.c => lib/refs.c                               |   0\n refs.h => lib/refs.h                               |   0\n {refs => lib/refs}/debug.c                         |   0\n {refs => lib/refs}/files-backend.c                 |   0\n {refs => lib/refs}/iterator.c                      |   0\n {refs => lib/refs}/packed-backend.c                |   0\n {refs => lib/refs}/packed-backend.h                |   0\n {refs => lib/refs}/ref-cache.c                     |   0\n {refs => lib/refs}/ref-cache.h                     |   0\n {refs => lib/refs}/refs-internal.h                 |   0\n {refs => lib/refs}/reftable-backend.c              |   0\n refspec.c => lib/refspec.c                         |   0\n refspec.h => lib/refspec.h                         |   0\n {reftable => lib/reftable}/LICENSE                 |   0\n {reftable => lib/reftable}/basics.c                |   0\n {reftable => lib/reftable}/basics.h                |   0\n {reftable => lib/reftable}/block.c                 |   0\n {reftable => lib/reftable}/block.h                 |   0\n {reftable => lib/reftable}/blocksource.c           |   0\n {reftable => lib/reftable}/blocksource.h           |   0\n {reftable => lib/reftable}/constants.h             |   0\n {reftable => lib/reftable}/error.c                 |   0\n {reftable => lib/reftable}/fsck.c                  |   0\n {reftable => lib/reftable}/iter.c                  |   0\n {reftable => lib/reftable}/iter.h                  |   0\n {reftable => lib/reftable}/merged.c                |   0\n {reftable => lib/reftable}/merged.h                |   0\n {reftable => lib/reftable}/pq.c                    |   0\n {reftable => lib/reftable}/pq.h                    |   0\n {reftable => lib/reftable}/record.c                |   0\n {reftable => lib/reftable}/record.h                |   0\n {reftable => lib/reftable}/reftable-basics.h       |   0\n {reftable => lib/reftable}/reftable-block.h        |   0\n {reftable => lib/reftable}/reftable-blocksource.h  |   0\n {reftable => lib/reftable}/reftable-constants.h    |   0\n {reftable => lib/reftable}/reftable-error.h        |   0\n {reftable => lib/reftable}/reftable-fsck.h         |   0\n {reftable => lib/reftable}/reftable-iterator.h     |   0\n {reftable => lib/reftable}/reftable-merged.h       |   0\n {reftable => lib/reftable}/reftable-record.h       |   0\n {reftable => lib/reftable}/reftable-stack.h        |   0\n {reftable => lib/reftable}/reftable-system.h       |   0\n {reftable => lib/reftable}/reftable-table.h        |   0\n {reftable => lib/reftable}/reftable-writer.h       |   0\n {reftable => lib/reftable}/stack.c                 |   0\n {reftable => lib/reftable}/stack.h                 |   0\n {reftable => lib/reftable}/system.c                |   0\n {reftable => lib/reftable}/system.h                |   0\n {reftable => lib/reftable}/table.c                 |   0\n {reftable => lib/reftable}/table.h                 |   0\n {reftable => lib/reftable}/tree.c                  |   0\n {reftable => lib/reftable}/tree.h                  |   0\n {reftable => lib/reftable}/writer.c                |   0\n {reftable => lib/reftable}/writer.h                |   0\n remote.c => lib/remote.c                           |   0\n remote.h => lib/remote.h                           |   0\n repack-cruft.c => lib/repack-cruft.c               |   0\n repack-filtered.c => lib/repack-filtered.c         |   0\n repack-geometry.c => lib/repack-geometry.c         |   0\n repack-midx.c => lib/repack-midx.c                 |   0\n repack-promisor.c => lib/repack-promisor.c         |   0\n repack.c => lib/repack.c                           |   0\n repack.h => lib/repack.h                           |   0\n replace-object.c => lib/replace-object.c           |   0\n replace-object.h => lib/replace-object.h           |   0\n replay.c => lib/replay.c                           |   0\n replay.h => lib/replay.h                           |   0\n repo-settings.c => lib/repo-settings.c             |   0\n repo-settings.h => lib/repo-settings.h             |   0\n repository.c => lib/repository.c                   |   0\n repository.h => lib/repository.h                   |   0\n rerere.c => lib/rerere.c                           |   0\n rerere.h => lib/rerere.h                           |   0\n reset.c => lib/reset.c                             |   0\n reset.h => lib/reset.h                             |   0\n resolve-undo.c => lib/resolve-undo.c               |   0\n resolve-undo.h => lib/resolve-undo.h               |   0\n revision.c => lib/revision.c                       |   0\n revision.h => lib/revision.h                       |   0\n run-command.c => lib/run-command.c                 |   0\n run-command.h => lib/run-command.h                 |   0\n sane-ctype.h => lib/sane-ctype.h                   |   0\n send-pack.c => lib/send-pack.c                     |   0\n send-pack.h => lib/send-pack.h                     |   0\n sequencer.c => lib/sequencer.c                     |   0\n sequencer.h => lib/sequencer.h                     |   0\n serve.c => lib/serve.c                             |   0\n serve.h => lib/serve.h                             |   0\n server-info.c => lib/server-info.c                 |   0\n server-info.h => lib/server-info.h                 |   0\n setup.c => lib/setup.c                             |   0\n setup.h => lib/setup.h                             |   0\n {sha1 => lib/sha1}/openssl.h                       |   0\n .../sha1collisiondetection                         |   0\n {sha1dc => lib/sha1dc}/.gitattributes              |   0\n {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n {sha1dc => lib/sha1dc}/sha1.c                      |   0\n {sha1dc => lib/sha1dc}/sha1.h                      |   0\n {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n sha1dc_git.c => lib/sha1dc_git.c                   |   0\n sha1dc_git.h => lib/sha1dc_git.h                   |   0\n {sha256 => lib/sha256}/block/sha256.c              |   0\n {sha256 => lib/sha256}/block/sha256.h              |   0\n {sha256 => lib/sha256}/gcrypt.h                    |   0\n {sha256 => lib/sha256}/nettle.h                    |   0\n {sha256 => lib/sha256}/openssl.h                   |   0\n shallow.c => lib/shallow.c                         |   0\n shallow.h => lib/shallow.h                         |   0\n shortlog.h => lib/shortlog.h                       |   0\n sideband.c => lib/sideband.c                       |   0\n sideband.h => lib/sideband.h                       |   0\n sigchain.c => lib/sigchain.c                       |   0\n sigchain.h => lib/sigchain.h                       |   0\n simple-ipc.h => lib/simple-ipc.h                   |   0\n sparse-index.c => lib/sparse-index.c               |   0\n sparse-index.h => lib/sparse-index.h               |   0\n split-index.c => lib/split-index.c                 |   0\n split-index.h => lib/split-index.h                 |   0\n stable-qsort.c => lib/stable-qsort.c               |   0\n statinfo.c => lib/statinfo.c                       |   0\n statinfo.h => lib/statinfo.h                       |   0\n strbuf.c => lib/strbuf.c                           |   0\n strbuf.h => lib/strbuf.h                           |   0\n string-list.c => lib/string-list.c                 |   0\n string-list.h => lib/string-list.h                 |   0\n strmap.c => lib/strmap.c                           |   0\n strmap.h => lib/strmap.h                           |   0\n strvec.c => lib/strvec.c                           |   0\n strvec.h => lib/strvec.h                           |   0\n sub-process.c => lib/sub-process.c                 |   0\n sub-process.h => lib/sub-process.h                 |   0\n submodule-config.c => lib/submodule-config.c       |   0\n submodule-config.h => lib/submodule-config.h       |   0\n submodule.c => lib/submodule.c                     |   0\n submodule.h => lib/submodule.h                     |   0\n symlinks.c => lib/symlinks.c                       |   0\n symlinks.h => lib/symlinks.h                       |   0\n tag.c => lib/tag.c                                 |   0\n tag.h => lib/tag.h                                 |   0\n tar.h => lib/tar.h                                 |   0\n tempfile.c => lib/tempfile.c                       |   0\n tempfile.h => lib/tempfile.h                       |   0\n thread-utils.c => lib/thread-utils.c               |   0\n thread-utils.h => lib/thread-utils.h               |   0\n tmp-objdir.c => lib/tmp-objdir.c                   |   0\n tmp-objdir.h => lib/tmp-objdir.h                   |   0\n trace.c => lib/trace.c                             |   0\n trace.h => lib/trace.h                             |   0\n trace2.c => lib/trace2.c                           |   0\n trace2.h => lib/trace2.h                           |   0\n {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n {trace2 => lib/trace2}/tr2_dst.c                   |   0\n {trace2 => lib/trace2}/tr2_dst.h                   |   0\n {trace2 => lib/trace2}/tr2_sid.c                   |   0\n {trace2 => lib/trace2}/tr2_sid.h                   |   0\n {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n {trace2 => lib/trace2}/tr2_tls.c                   |   0\n {trace2 => lib/trace2}/tr2_tls.h                   |   0\n {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n trailer.c => lib/trailer.c                         |   0\n trailer.h => lib/trailer.h                         |   0\n transport-helper.c => lib/transport-helper.c       |   0\n transport-internal.h => lib/transport-internal.h   |   0\n transport.c => lib/transport.c                     |   0\n transport.h => lib/transport.h                     |   0\n tree-diff.c => lib/tree-diff.c                     |   0\n tree-walk.c => lib/tree-walk.c                     |   0\n tree-walk.h => lib/tree-walk.h                     |   0\n tree.c => lib/tree.c                               |   0\n tree.h => lib/tree.h                               |   0\n unicode-width.h => lib/unicode-width.h             |   0\n unix-socket.c => lib/unix-socket.c                 |   0\n unix-socket.h => lib/unix-socket.h                 |   0\n unix-stream-server.c => lib/unix-stream-server.c   |   0\n unix-stream-server.h => lib/unix-stream-server.h   |   0\n unpack-trees.c => lib/unpack-trees.c               |   0\n unpack-trees.h => lib/unpack-trees.h               |   0\n upload-pack.c => lib/upload-pack.c                 |   0\n upload-pack.h => lib/upload-pack.h                 |   0\n url.c => lib/url.c                                 |   0\n url.h => lib/url.h                                 |   0\n urlmatch.c => lib/urlmatch.c                       |   0\n urlmatch.h => lib/urlmatch.h                       |   0\n usage.c => lib/usage.c                             |   0\n userdiff.c => lib/userdiff.c                       |   0\n userdiff.h => lib/userdiff.h                       |   0\n utf8.c => lib/utf8.c                               |   0\n utf8.h => lib/utf8.h                               |   0\n varint.c => lib/varint.c                           |   0\n varint.h => lib/varint.h                           |   0\n version-def.h.in => lib/version-def.h.in           |   0\n version.c => lib/version.c                         |   0\n version.h => lib/version.h                         |   0\n versioncmp.c => lib/versioncmp.c                   |   0\n versioncmp.h => lib/versioncmp.h                   |   0\n walker.c => lib/walker.c                           |   0\n walker.h => lib/walker.h                           |   0\n wildmatch.c => lib/wildmatch.c                     |   0\n wildmatch.h => lib/wildmatch.h                     |   0\n worktree.c => lib/worktree.c                       |   0\n worktree.h => lib/worktree.h                       |   0\n wrapper.c => lib/wrapper.c                         |   0\n wrapper.h => lib/wrapper.h                         |   0\n write-or-die.c => lib/write-or-die.c               |   0\n write-or-die.h => lib/write-or-die.h               |   0\n ws.c => lib/ws.c                                   |   0\n ws.h => lib/ws.h                                   |   0\n wt-status.c => lib/wt-status.c                     |   0\n wt-status.h => lib/wt-status.h                     |   0\n xdiff-interface.c => lib/xdiff-interface.c         |   0\n xdiff-interface.h => lib/xdiff-interface.h         |   0\n {xdiff => lib/xdiff}/xdiff.h                       |   0\n {xdiff => lib/xdiff}/xdiffi.c                      |   0\n {xdiff => lib/xdiff}/xdiffi.h                      |   0\n {xdiff => lib/xdiff}/xemit.c                       |   0\n {xdiff => lib/xdiff}/xemit.h                       |   0\n {xdiff => lib/xdiff}/xhistogram.c                  |   0\n {xdiff => lib/xdiff}/xinclude.h                    |   0\n {xdiff => lib/xdiff}/xmacros.h                     |   0\n {xdiff => lib/xdiff}/xmerge.c                      |   0\n {xdiff => lib/xdiff}/xpatience.c                   |   0\n {xdiff => lib/xdiff}/xprepare.c                    |   0\n {xdiff => lib/xdiff}/xprepare.h                    |   0\n {xdiff => lib/xdiff}/xtypes.h                      |   0\n {xdiff => lib/xdiff}/xutils.c                      |   0\n {xdiff => lib/xdiff}/xutils.h                      |   0\n meson.build                                        | 700 +++++++++----------\n 703 files changed, 822 insertions(+), 821 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex cf341d74db..a8402babd9 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -179,7 +179,7 @@ jobs:\n       uses: actions/checkout@v6\n       with:\n         repository: 'microsoft/vcpkg'\n-        path: 'compat/vcbuild/vcpkg'\n+        path: 'lib/compat/vcbuild/vcpkg'\n     - name: download vcpkg artifacts\n       uses: git-for-windows/get-azure-pipelines-artifact@v0\n       with:\n@@ -189,11 +189,11 @@ jobs:\n       uses: microsoft/setup-msbuild@v3\n     - name: copy dlls to root\n       shell: cmd\n-      run: compat\\vcbuild\\vcpkg_copy_dlls.bat release\n+      run: lib\\compat\\vcbuild\\vcpkg_copy_dlls.bat release\n     - name: generate Visual Studio solution\n       shell: bash\n       run: |\n-        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \\\n+        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/lib/compat/vcbuild/vcpkg/installed/x64-windows \\\n         -DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON\n     - name: MSBuild\n       run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142\n@@ -201,7 +201,7 @@ jobs:\n       shell: bash\n       env:\n         MSVC: 1\n-        VCPKG_ROOT: ${{github.workspace}}\\compat\\vcbuild\\vcpkg\n+        VCPKG_ROOT: ${{github.workspace}}\\lib\\compat\\vcbuild\\vcpkg\n       run: |\n         mkdir -p artifacts &&\n         eval \"$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)\"\ndiff --git a/.gitmodules b/.gitmodules\nindex cbeebdab7a..8bafb8bb49 100644\n--- a/.gitmodules\n+++ b/.gitmodules\n@@ -1,4 +1,4 @@\n [submodule \"sha1collisiondetection\"]\n-\tpath = sha1collisiondetection\n+\tpath = lib/sha1collisiondetection\n \turl = https://github.com/cr-marcstevens/sha1collisiondetection.git\n \tbranch = master\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex 2699f0b24a..c4fd5a5c87 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -505,10 +505,10 @@ lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER)\n .PHONY: lint-docs-fsck-msgids\n LINT_DOCS_FSCK_MSGIDS = .build/lint-docs/fsck-msgids.ok\n $(LINT_DOCS_FSCK_MSGIDS): lint-fsck-msgids.perl\n-$(LINT_DOCS_FSCK_MSGIDS): ../fsck.h fsck-msgids.adoc\n+$(LINT_DOCS_FSCK_MSGIDS): ../lib/fsck.h fsck-msgids.adoc\n \t$(call mkdir_p_parent_template)\n \t$(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \\\n-\t\t../fsck.h fsck-msgids.adoc $@\n+\t\t../lib/fsck.h fsck-msgids.adoc $@\n lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS)\n \n ## Lint: delimited sections\ndiff --git a/Makefile b/Makefile\nindex 1f3f099f5c..4afe497ab3 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -967,7 +967,7 @@ endif\n CFLAGS = -g -O2 -Wall\n LDFLAGS =\n CC_LD_DYNPATH = -Wl,-rpath,\n-BASIC_CFLAGS = -I.\n+BASIC_CFLAGS = -I. -Ilib\n BASIC_LDFLAGS =\n \n # library flags\n@@ -992,7 +992,7 @@ SANITIZE_LEAK =\n SANITIZE_ADDRESS =\n \n # For the 'coccicheck' target\n-SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I ,compat ewah refs sha256 trace2 win32 xdiff)\n+SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I lib/,compat ewah refs sha256 trace2 win32 xdiff)\n SPATCH_FLAGS =\n SPATCH_TEST_FLAGS =\n \n@@ -1083,297 +1083,297 @@ FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CMD)))\n FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES))\n FOUND_H_SOURCES = $(filter %.h,$(FOUND_SOURCE_FILES))\n \n-COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES) reftable/%,$(FOUND_C_SOURCES))\n+COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES) lib/reftable/%,$(FOUND_C_SOURCES))\n \n LIB_H = $(FOUND_H_SOURCES)\n \n-LIB_OBJS += abspath.o\n-LIB_OBJS += add-interactive.o\n-LIB_OBJS += add-patch.o\n-LIB_OBJS += advice.o\n-LIB_OBJS += alias.o\n-LIB_OBJS += alloc.o\n-LIB_OBJS += apply.o\n-LIB_OBJS += archive-tar.o\n-LIB_OBJS += archive-zip.o\n-LIB_OBJS += archive.o\n-LIB_OBJS += attr.o\n-LIB_OBJS += base85.o\n-LIB_OBJS += bisect.o\n-LIB_OBJS += blame.o\n-LIB_OBJS += blob.o\n-LIB_OBJS += bloom.o\n-LIB_OBJS += branch.o\n-LIB_OBJS += bundle-uri.o\n-LIB_OBJS += bundle.o\n-LIB_OBJS += cache-tree.o\n-LIB_OBJS += cbtree.o\n-LIB_OBJS += chdir-notify.o\n-LIB_OBJS += checkout.o\n-LIB_OBJS += chunk-format.o\n-LIB_OBJS += color.o\n-LIB_OBJS += column.o\n-LIB_OBJS += combine-diff.o\n-LIB_OBJS += commit-graph.o\n-LIB_OBJS += commit-reach.o\n-LIB_OBJS += commit.o\n-LIB_OBJS += common-exit.o\n-LIB_OBJS += common-init.o\n-LIB_OBJS += compat/nonblock.o\n-LIB_OBJS += compat/obstack.o\n-LIB_OBJS += compat/open.o\n-LIB_OBJS += compat/terminal.o\n-LIB_OBJS += compiler-tricks/not-constant.o\n-LIB_OBJS += config.o\n-LIB_OBJS += connect.o\n-LIB_OBJS += connected.o\n-LIB_OBJS += convert.o\n-LIB_OBJS += copy.o\n-LIB_OBJS += credential.o\n-LIB_OBJS += csum-file.o\n-LIB_OBJS += ctype.o\n-LIB_OBJS += date.o\n-LIB_OBJS += decorate.o\n-LIB_OBJS += delta-islands.o\n-LIB_OBJS += diagnose.o\n-LIB_OBJS += diff-delta.o\n-LIB_OBJS += diff-merges.o\n-LIB_OBJS += diff-lib.o\n-LIB_OBJS += diff-no-index.o\n-LIB_OBJS += diff.o\n-LIB_OBJS += diffcore-break.o\n-LIB_OBJS += diffcore-delta.o\n-LIB_OBJS += diffcore-order.o\n-LIB_OBJS += diffcore-pickaxe.o\n-LIB_OBJS += diffcore-rename.o\n-LIB_OBJS += diffcore-rotate.o\n-LIB_OBJS += dir-iterator.o\n-LIB_OBJS += dir.o\n-LIB_OBJS += editor.o\n-LIB_OBJS += entry.o\n-LIB_OBJS += environment.o\n-LIB_OBJS += ewah/bitmap.o\n-LIB_OBJS += ewah/ewah_bitmap.o\n-LIB_OBJS += ewah/ewah_io.o\n-LIB_OBJS += ewah/ewah_rlw.o\n-LIB_OBJS += exec-cmd.o\n-LIB_OBJS += fetch-negotiator.o\n-LIB_OBJS += fetch-pack.o\n-LIB_OBJS += fmt-merge-msg.o\n-LIB_OBJS += fsck.o\n-LIB_OBJS += fsmonitor.o\n-LIB_OBJS += fsmonitor-ipc.o\n-LIB_OBJS += fsmonitor-settings.o\n-LIB_OBJS += gettext.o\n-LIB_OBJS += git-zlib.o\n-LIB_OBJS += gpg-interface.o\n-LIB_OBJS += graph.o\n-LIB_OBJS += grep.o\n-LIB_OBJS += hash-lookup.o\n-LIB_OBJS += hash.o\n-LIB_OBJS += hashmap.o\n-LIB_OBJS += help.o\n-LIB_OBJS += hex.o\n-LIB_OBJS += hex-ll.o\n-LIB_OBJS += hook.o\n-LIB_OBJS += ident.o\n-LIB_OBJS += json-writer.o\n-LIB_OBJS += kwset.o\n-LIB_OBJS += levenshtein.o\n-LIB_OBJS += line-log.o\n-LIB_OBJS += line-range.o\n-LIB_OBJS += linear-assignment.o\n-LIB_OBJS += list-objects-filter-options.o\n-LIB_OBJS += list-objects-filter.o\n-LIB_OBJS += list-objects.o\n-LIB_OBJS += lockfile.o\n-LIB_OBJS += log-tree.o\n-LIB_OBJS += loose.o\n-LIB_OBJS += ls-refs.o\n-LIB_OBJS += mailinfo.o\n-LIB_OBJS += mailmap.o\n-LIB_OBJS += match-trees.o\n-LIB_OBJS += mem-pool.o\n-LIB_OBJS += merge-blobs.o\n-LIB_OBJS += merge-ll.o\n-LIB_OBJS += merge-ort.o\n-LIB_OBJS += merge-ort-wrappers.o\n-LIB_OBJS += merge.o\n-LIB_OBJS += midx.o\n-LIB_OBJS += midx-write.o\n-LIB_OBJS += name-hash.o\n-LIB_OBJS += negotiator/default.o\n-LIB_OBJS += negotiator/noop.o\n-LIB_OBJS += negotiator/skipping.o\n-LIB_OBJS += notes-cache.o\n-LIB_OBJS += notes-merge.o\n-LIB_OBJS += notes-utils.o\n-LIB_OBJS += notes.o\n-LIB_OBJS += object-file-convert.o\n-LIB_OBJS += object-file.o\n-LIB_OBJS += object-name.o\n-LIB_OBJS += object.o\n-LIB_OBJS += odb.o\n-LIB_OBJS += odb/source.o\n-LIB_OBJS += odb/source-files.o\n-LIB_OBJS += odb/source-inmemory.o\n-LIB_OBJS += odb/source-loose.o\n-LIB_OBJS += odb/source-packed.o\n-LIB_OBJS += odb/streaming.o\n-LIB_OBJS += odb/transaction.o\n-LIB_OBJS += oid-array.o\n-LIB_OBJS += oidmap.o\n-LIB_OBJS += oidset.o\n-LIB_OBJS += oidtree.o\n-LIB_OBJS += pack-bitmap-write.o\n-LIB_OBJS += pack-bitmap.o\n-LIB_OBJS += pack-check.o\n-LIB_OBJS += pack-mtimes.o\n-LIB_OBJS += pack-objects.o\n-LIB_OBJS += pack-refs.o\n-LIB_OBJS += pack-revindex.o\n-LIB_OBJS += pack-write.o\n-LIB_OBJS += packfile.o\n-LIB_OBJS += packfile-list.o\n-LIB_OBJS += pager.o\n-LIB_OBJS += parallel-checkout.o\n-LIB_OBJS += parse.o\n-LIB_OBJS += parse-options-cb.o\n-LIB_OBJS += parse-options.o\n-LIB_OBJS += patch-delta.o\n-LIB_OBJS += patch-ids.o\n-LIB_OBJS += path.o\n-LIB_OBJS += path-walk.o\n-LIB_OBJS += pathspec.o\n-LIB_OBJS += pkt-line.o\n-LIB_OBJS += preload-index.o\n-LIB_OBJS += pretty.o\n-LIB_OBJS += prio-queue.o\n-LIB_OBJS += progress.o\n-LIB_OBJS += promisor-remote.o\n-LIB_OBJS += prompt.o\n-LIB_OBJS += protocol.o\n-LIB_OBJS += protocol-caps.o\n-LIB_OBJS += prune-packed.o\n-LIB_OBJS += pseudo-merge.o\n-LIB_OBJS += quote.o\n-LIB_OBJS += range-diff.o\n-LIB_OBJS += reachable.o\n-LIB_OBJS += read-cache.o\n-LIB_OBJS += rebase-interactive.o\n-LIB_OBJS += rebase.o\n-LIB_OBJS += ref-filter.o\n-LIB_OBJS += reflog-walk.o\n-LIB_OBJS += reflog.o\n-LIB_OBJS += refs.o\n-LIB_OBJS += refs/debug.o\n-LIB_OBJS += refs/files-backend.o\n-LIB_OBJS += refs/reftable-backend.o\n-LIB_OBJS += refs/iterator.o\n-LIB_OBJS += refs/packed-backend.o\n-LIB_OBJS += refs/ref-cache.o\n-LIB_OBJS += refspec.o\n-LIB_OBJS += reftable/basics.o\n-LIB_OBJS += reftable/block.o\n-LIB_OBJS += reftable/blocksource.o\n-LIB_OBJS += reftable/error.o\n-LIB_OBJS += reftable/fsck.o\n-LIB_OBJS += reftable/iter.o\n-LIB_OBJS += reftable/merged.o\n-LIB_OBJS += reftable/pq.o\n-LIB_OBJS += reftable/record.o\n-LIB_OBJS += reftable/stack.o\n-LIB_OBJS += reftable/system.o\n-LIB_OBJS += reftable/table.o\n-LIB_OBJS += reftable/tree.o\n-LIB_OBJS += reftable/writer.o\n-LIB_OBJS += remote.o\n-LIB_OBJS += repack.o\n-LIB_OBJS += repack-cruft.o\n-LIB_OBJS += repack-filtered.o\n-LIB_OBJS += repack-geometry.o\n-LIB_OBJS += repack-midx.o\n-LIB_OBJS += repack-promisor.o\n-LIB_OBJS += replace-object.o\n-LIB_OBJS += replay.o\n-LIB_OBJS += repo-settings.o\n-LIB_OBJS += repository.o\n-LIB_OBJS += rerere.o\n-LIB_OBJS += reset.o\n-LIB_OBJS += resolve-undo.o\n-LIB_OBJS += revision.o\n-LIB_OBJS += run-command.o\n-LIB_OBJS += send-pack.o\n-LIB_OBJS += sequencer.o\n-LIB_OBJS += serve.o\n-LIB_OBJS += server-info.o\n-LIB_OBJS += setup.o\n-LIB_OBJS += shallow.o\n-LIB_OBJS += sideband.o\n-LIB_OBJS += sigchain.o\n-LIB_OBJS += sparse-index.o\n-LIB_OBJS += split-index.o\n-LIB_OBJS += stable-qsort.o\n-LIB_OBJS += statinfo.o\n-LIB_OBJS += strbuf.o\n-LIB_OBJS += string-list.o\n-LIB_OBJS += strmap.o\n-LIB_OBJS += strvec.o\n-LIB_OBJS += sub-process.o\n-LIB_OBJS += submodule-config.o\n-LIB_OBJS += submodule.o\n-LIB_OBJS += symlinks.o\n-LIB_OBJS += tag.o\n-LIB_OBJS += tempfile.o\n-LIB_OBJS += thread-utils.o\n-LIB_OBJS += tmp-objdir.o\n-LIB_OBJS += trace.o\n-LIB_OBJS += trace2.o\n-LIB_OBJS += trace2/tr2_cfg.o\n-LIB_OBJS += trace2/tr2_cmd_name.o\n-LIB_OBJS += trace2/tr2_ctr.o\n-LIB_OBJS += trace2/tr2_dst.o\n-LIB_OBJS += trace2/tr2_sid.o\n-LIB_OBJS += trace2/tr2_sysenv.o\n-LIB_OBJS += trace2/tr2_tbuf.o\n-LIB_OBJS += trace2/tr2_tgt_event.o\n-LIB_OBJS += trace2/tr2_tgt_normal.o\n-LIB_OBJS += trace2/tr2_tgt_perf.o\n-LIB_OBJS += trace2/tr2_tls.o\n-LIB_OBJS += trace2/tr2_tmr.o\n-LIB_OBJS += trailer.o\n-LIB_OBJS += transport-helper.o\n-LIB_OBJS += transport.o\n-LIB_OBJS += tree-diff.o\n-LIB_OBJS += tree-walk.o\n-LIB_OBJS += tree.o\n-LIB_OBJS += unpack-trees.o\n-LIB_OBJS += upload-pack.o\n-LIB_OBJS += url.o\n-LIB_OBJS += urlmatch.o\n-LIB_OBJS += usage.o\n-LIB_OBJS += userdiff.o\n-LIB_OBJS += utf8.o\n+LIB_OBJS += lib/abspath.o\n+LIB_OBJS += lib/add-interactive.o\n+LIB_OBJS += lib/add-patch.o\n+LIB_OBJS += lib/advice.o\n+LIB_OBJS += lib/alias.o\n+LIB_OBJS += lib/alloc.o\n+LIB_OBJS += lib/apply.o\n+LIB_OBJS += lib/archive-tar.o\n+LIB_OBJS += lib/archive-zip.o\n+LIB_OBJS += lib/archive.o\n+LIB_OBJS += lib/attr.o\n+LIB_OBJS += lib/base85.o\n+LIB_OBJS += lib/bisect.o\n+LIB_OBJS += lib/blame.o\n+LIB_OBJS += lib/blob.o\n+LIB_OBJS += lib/bloom.o\n+LIB_OBJS += lib/branch.o\n+LIB_OBJS += lib/bundle-uri.o\n+LIB_OBJS += lib/bundle.o\n+LIB_OBJS += lib/cache-tree.o\n+LIB_OBJS += lib/cbtree.o\n+LIB_OBJS += lib/chdir-notify.o\n+LIB_OBJS += lib/checkout.o\n+LIB_OBJS += lib/chunk-format.o\n+LIB_OBJS += lib/color.o\n+LIB_OBJS += lib/column.o\n+LIB_OBJS += lib/combine-diff.o\n+LIB_OBJS += lib/commit-graph.o\n+LIB_OBJS += lib/commit-reach.o\n+LIB_OBJS += lib/commit.o\n+LIB_OBJS += lib/common-exit.o\n+LIB_OBJS += lib/common-init.o\n+LIB_OBJS += lib/compat/nonblock.o\n+LIB_OBJS += lib/compat/obstack.o\n+LIB_OBJS += lib/compat/open.o\n+LIB_OBJS += lib/compat/terminal.o\n+LIB_OBJS += lib/compiler-tricks/not-constant.o\n+LIB_OBJS += lib/config.o\n+LIB_OBJS += lib/connect.o\n+LIB_OBJS += lib/connected.o\n+LIB_OBJS += lib/convert.o\n+LIB_OBJS += lib/copy.o\n+LIB_OBJS += lib/credential.o\n+LIB_OBJS += lib/csum-file.o\n+LIB_OBJS += lib/ctype.o\n+LIB_OBJS += lib/date.o\n+LIB_OBJS += lib/decorate.o\n+LIB_OBJS += lib/delta-islands.o\n+LIB_OBJS += lib/diagnose.o\n+LIB_OBJS += lib/diff-delta.o\n+LIB_OBJS += lib/diff-merges.o\n+LIB_OBJS += lib/diff-lib.o\n+LIB_OBJS += lib/diff-no-index.o\n+LIB_OBJS += lib/diff.o\n+LIB_OBJS += lib/diffcore-break.o\n+LIB_OBJS += lib/diffcore-delta.o\n+LIB_OBJS += lib/diffcore-order.o\n+LIB_OBJS += lib/diffcore-pickaxe.o\n+LIB_OBJS += lib/diffcore-rename.o\n+LIB_OBJS += lib/diffcore-rotate.o\n+LIB_OBJS += lib/dir-iterator.o\n+LIB_OBJS += lib/dir.o\n+LIB_OBJS += lib/editor.o\n+LIB_OBJS += lib/entry.o\n+LIB_OBJS += lib/environment.o\n+LIB_OBJS += lib/ewah/bitmap.o\n+LIB_OBJS += lib/ewah/ewah_bitmap.o\n+LIB_OBJS += lib/ewah/ewah_io.o\n+LIB_OBJS += lib/ewah/ewah_rlw.o\n+LIB_OBJS += lib/exec-cmd.o\n+LIB_OBJS += lib/fetch-negotiator.o\n+LIB_OBJS += lib/fetch-pack.o\n+LIB_OBJS += lib/fmt-merge-msg.o\n+LIB_OBJS += lib/fsck.o\n+LIB_OBJS += lib/fsmonitor.o\n+LIB_OBJS += lib/fsmonitor-ipc.o\n+LIB_OBJS += lib/fsmonitor-settings.o\n+LIB_OBJS += lib/gettext.o\n+LIB_OBJS += lib/git-zlib.o\n+LIB_OBJS += lib/gpg-interface.o\n+LIB_OBJS += lib/graph.o\n+LIB_OBJS += lib/grep.o\n+LIB_OBJS += lib/hash-lookup.o\n+LIB_OBJS += lib/hash.o\n+LIB_OBJS += lib/hashmap.o\n+LIB_OBJS += lib/help.o\n+LIB_OBJS += lib/hex.o\n+LIB_OBJS += lib/hex-ll.o\n+LIB_OBJS += lib/hook.o\n+LIB_OBJS += lib/ident.o\n+LIB_OBJS += lib/json-writer.o\n+LIB_OBJS += lib/kwset.o\n+LIB_OBJS += lib/levenshtein.o\n+LIB_OBJS += lib/line-log.o\n+LIB_OBJS += lib/line-range.o\n+LIB_OBJS += lib/linear-assignment.o\n+LIB_OBJS += lib/list-objects-filter-options.o\n+LIB_OBJS += lib/list-objects-filter.o\n+LIB_OBJS += lib/list-objects.o\n+LIB_OBJS += lib/lockfile.o\n+LIB_OBJS += lib/log-tree.o\n+LIB_OBJS += lib/loose.o\n+LIB_OBJS += lib/ls-refs.o\n+LIB_OBJS += lib/mailinfo.o\n+LIB_OBJS += lib/mailmap.o\n+LIB_OBJS += lib/match-trees.o\n+LIB_OBJS += lib/mem-pool.o\n+LIB_OBJS += lib/merge-blobs.o\n+LIB_OBJS += lib/merge-ll.o\n+LIB_OBJS += lib/merge-ort.o\n+LIB_OBJS += lib/merge-ort-wrappers.o\n+LIB_OBJS += lib/merge.o\n+LIB_OBJS += lib/midx.o\n+LIB_OBJS += lib/midx-write.o\n+LIB_OBJS += lib/name-hash.o\n+LIB_OBJS += lib/negotiator/default.o\n+LIB_OBJS += lib/negotiator/noop.o\n+LIB_OBJS += lib/negotiator/skipping.o\n+LIB_OBJS += lib/notes-cache.o\n+LIB_OBJS += lib/notes-merge.o\n+LIB_OBJS += lib/notes-utils.o\n+LIB_OBJS += lib/notes.o\n+LIB_OBJS += lib/object-file-convert.o\n+LIB_OBJS += lib/object-file.o\n+LIB_OBJS += lib/object-name.o\n+LIB_OBJS += lib/object.o\n+LIB_OBJS += lib/odb.o\n+LIB_OBJS += lib/odb/source.o\n+LIB_OBJS += lib/odb/source-files.o\n+LIB_OBJS += lib/odb/source-inmemory.o\n+LIB_OBJS += lib/odb/source-loose.o\n+LIB_OBJS += lib/odb/source-packed.o\n+LIB_OBJS += lib/odb/streaming.o\n+LIB_OBJS += lib/odb/transaction.o\n+LIB_OBJS += lib/oid-array.o\n+LIB_OBJS += lib/oidmap.o\n+LIB_OBJS += lib/oidset.o\n+LIB_OBJS += lib/oidtree.o\n+LIB_OBJS += lib/pack-bitmap-write.o\n+LIB_OBJS += lib/pack-bitmap.o\n+LIB_OBJS += lib/pack-check.o\n+LIB_OBJS += lib/pack-mtimes.o\n+LIB_OBJS += lib/pack-objects.o\n+LIB_OBJS += lib/pack-refs.o\n+LIB_OBJS += lib/pack-revindex.o\n+LIB_OBJS += lib/pack-write.o\n+LIB_OBJS += lib/packfile.o\n+LIB_OBJS += lib/packfile-list.o\n+LIB_OBJS += lib/pager.o\n+LIB_OBJS += lib/parallel-checkout.o\n+LIB_OBJS += lib/parse.o\n+LIB_OBJS += lib/parse-options-cb.o\n+LIB_OBJS += lib/parse-options.o\n+LIB_OBJS += lib/patch-delta.o\n+LIB_OBJS += lib/patch-ids.o\n+LIB_OBJS += lib/path.o\n+LIB_OBJS += lib/path-walk.o\n+LIB_OBJS += lib/pathspec.o\n+LIB_OBJS += lib/pkt-line.o\n+LIB_OBJS += lib/preload-index.o\n+LIB_OBJS += lib/pretty.o\n+LIB_OBJS += lib/prio-queue.o\n+LIB_OBJS += lib/progress.o\n+LIB_OBJS += lib/promisor-remote.o\n+LIB_OBJS += lib/prompt.o\n+LIB_OBJS += lib/protocol.o\n+LIB_OBJS += lib/protocol-caps.o\n+LIB_OBJS += lib/prune-packed.o\n+LIB_OBJS += lib/pseudo-merge.o\n+LIB_OBJS += lib/quote.o\n+LIB_OBJS += lib/range-diff.o\n+LIB_OBJS += lib/reachable.o\n+LIB_OBJS += lib/read-cache.o\n+LIB_OBJS += lib/rebase-interactive.o\n+LIB_OBJS += lib/rebase.o\n+LIB_OBJS += lib/ref-filter.o\n+LIB_OBJS += lib/reflog-walk.o\n+LIB_OBJS += lib/reflog.o\n+LIB_OBJS += lib/refs.o\n+LIB_OBJS += lib/refs/debug.o\n+LIB_OBJS += lib/refs/files-backend.o\n+LIB_OBJS += lib/refs/reftable-backend.o\n+LIB_OBJS += lib/refs/iterator.o\n+LIB_OBJS += lib/refs/packed-backend.o\n+LIB_OBJS += lib/refs/ref-cache.o\n+LIB_OBJS += lib/refspec.o\n+LIB_OBJS += lib/reftable/basics.o\n+LIB_OBJS += lib/reftable/block.o\n+LIB_OBJS += lib/reftable/blocksource.o\n+LIB_OBJS += lib/reftable/error.o\n+LIB_OBJS += lib/reftable/fsck.o\n+LIB_OBJS += lib/reftable/iter.o\n+LIB_OBJS += lib/reftable/merged.o\n+LIB_OBJS += lib/reftable/pq.o\n+LIB_OBJS += lib/reftable/record.o\n+LIB_OBJS += lib/reftable/stack.o\n+LIB_OBJS += lib/reftable/system.o\n+LIB_OBJS += lib/reftable/table.o\n+LIB_OBJS += lib/reftable/tree.o\n+LIB_OBJS += lib/reftable/writer.o\n+LIB_OBJS += lib/remote.o\n+LIB_OBJS += lib/repack.o\n+LIB_OBJS += lib/repack-cruft.o\n+LIB_OBJS += lib/repack-filtered.o\n+LIB_OBJS += lib/repack-geometry.o\n+LIB_OBJS += lib/repack-midx.o\n+LIB_OBJS += lib/repack-promisor.o\n+LIB_OBJS += lib/replace-object.o\n+LIB_OBJS += lib/replay.o\n+LIB_OBJS += lib/repo-settings.o\n+LIB_OBJS += lib/repository.o\n+LIB_OBJS += lib/rerere.o\n+LIB_OBJS += lib/reset.o\n+LIB_OBJS += lib/resolve-undo.o\n+LIB_OBJS += lib/revision.o\n+LIB_OBJS += lib/run-command.o\n+LIB_OBJS += lib/send-pack.o\n+LIB_OBJS += lib/sequencer.o\n+LIB_OBJS += lib/serve.o\n+LIB_OBJS += lib/server-info.o\n+LIB_OBJS += lib/setup.o\n+LIB_OBJS += lib/shallow.o\n+LIB_OBJS += lib/sideband.o\n+LIB_OBJS += lib/sigchain.o\n+LIB_OBJS += lib/sparse-index.o\n+LIB_OBJS += lib/split-index.o\n+LIB_OBJS += lib/stable-qsort.o\n+LIB_OBJS += lib/statinfo.o\n+LIB_OBJS += lib/strbuf.o\n+LIB_OBJS += lib/string-list.o\n+LIB_OBJS += lib/strmap.o\n+LIB_OBJS += lib/strvec.o\n+LIB_OBJS += lib/sub-process.o\n+LIB_OBJS += lib/submodule-config.o\n+LIB_OBJS += lib/submodule.o\n+LIB_OBJS += lib/symlinks.o\n+LIB_OBJS += lib/tag.o\n+LIB_OBJS += lib/tempfile.o\n+LIB_OBJS += lib/thread-utils.o\n+LIB_OBJS += lib/tmp-objdir.o\n+LIB_OBJS += lib/trace.o\n+LIB_OBJS += lib/trace2.o\n+LIB_OBJS += lib/trace2/tr2_cfg.o\n+LIB_OBJS += lib/trace2/tr2_cmd_name.o\n+LIB_OBJS += lib/trace2/tr2_ctr.o\n+LIB_OBJS += lib/trace2/tr2_dst.o\n+LIB_OBJS += lib/trace2/tr2_sid.o\n+LIB_OBJS += lib/trace2/tr2_sysenv.o\n+LIB_OBJS += lib/trace2/tr2_tbuf.o\n+LIB_OBJS += lib/trace2/tr2_tgt_event.o\n+LIB_OBJS += lib/trace2/tr2_tgt_normal.o\n+LIB_OBJS += lib/trace2/tr2_tgt_perf.o\n+LIB_OBJS += lib/trace2/tr2_tls.o\n+LIB_OBJS += lib/trace2/tr2_tmr.o\n+LIB_OBJS += lib/trailer.o\n+LIB_OBJS += lib/transport-helper.o\n+LIB_OBJS += lib/transport.o\n+LIB_OBJS += lib/tree-diff.o\n+LIB_OBJS += lib/tree-walk.o\n+LIB_OBJS += lib/tree.o\n+LIB_OBJS += lib/unpack-trees.o\n+LIB_OBJS += lib/upload-pack.o\n+LIB_OBJS += lib/url.o\n+LIB_OBJS += lib/urlmatch.o\n+LIB_OBJS += lib/usage.o\n+LIB_OBJS += lib/userdiff.o\n+LIB_OBJS += lib/utf8.o\n ifdef NO_RUST\n-LIB_OBJS += varint.o\n-endif\n-LIB_OBJS += version.o\n-LIB_OBJS += versioncmp.o\n-LIB_OBJS += walker.o\n-LIB_OBJS += wildmatch.o\n-LIB_OBJS += worktree.o\n-LIB_OBJS += wrapper.o\n-LIB_OBJS += write-or-die.o\n-LIB_OBJS += ws.o\n-LIB_OBJS += wt-status.o\n-LIB_OBJS += xdiff-interface.o\n-LIB_OBJS += xdiff/xdiffi.o\n-LIB_OBJS += xdiff/xemit.o\n-LIB_OBJS += xdiff/xhistogram.o\n-LIB_OBJS += xdiff/xmerge.o\n-LIB_OBJS += xdiff/xpatience.o\n-LIB_OBJS += xdiff/xprepare.o\n-LIB_OBJS += xdiff/xutils.o\n+LIB_OBJS += lib/varint.o\n+endif\n+LIB_OBJS += lib/version.o\n+LIB_OBJS += lib/versioncmp.o\n+LIB_OBJS += lib/walker.o\n+LIB_OBJS += lib/wildmatch.o\n+LIB_OBJS += lib/worktree.o\n+LIB_OBJS += lib/wrapper.o\n+LIB_OBJS += lib/write-or-die.o\n+LIB_OBJS += lib/ws.o\n+LIB_OBJS += lib/wt-status.o\n+LIB_OBJS += lib/xdiff-interface.o\n+LIB_OBJS += lib/xdiff/xdiffi.o\n+LIB_OBJS += lib/xdiff/xemit.o\n+LIB_OBJS += lib/xdiff/xhistogram.o\n+LIB_OBJS += lib/xdiff/xmerge.o\n+LIB_OBJS += lib/xdiff/xpatience.o\n+LIB_OBJS += lib/xdiff/xprepare.o\n+LIB_OBJS += lib/xdiff/xutils.o\n \n BUILTIN_OBJS += builtin/add.o\n BUILTIN_OBJS += builtin/am.o\n@@ -1513,13 +1513,13 @@ BUILTIN_OBJS += builtin/write-tree.o\n # files which are taken from some third-party source where we want to be\n # less strict about issues such as coding style so we don't diverge from\n # upstream unnecessarily (making merging in future changes easier).\n-THIRD_PARTY_SOURCES += compat/inet_ntop.c\n-THIRD_PARTY_SOURCES += compat/inet_pton.c\n-THIRD_PARTY_SOURCES += compat/obstack.%\n-THIRD_PARTY_SOURCES += compat/poll/%\n-THIRD_PARTY_SOURCES += compat/regex/%\n-THIRD_PARTY_SOURCES += sha1collisiondetection/%\n-THIRD_PARTY_SOURCES += sha1dc/%\n+THIRD_PARTY_SOURCES += lib/compat/inet_ntop.c\n+THIRD_PARTY_SOURCES += lib/compat/inet_pton.c\n+THIRD_PARTY_SOURCES += lib/compat/obstack.%\n+THIRD_PARTY_SOURCES += lib/compat/poll/%\n+THIRD_PARTY_SOURCES += lib/compat/regex/%\n+THIRD_PARTY_SOURCES += lib/sha1collisiondetection/%\n+THIRD_PARTY_SOURCES += lib/sha1dc/%\n THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/%\n THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/clar/%\n \n@@ -1750,7 +1750,7 @@ endif\n \n ifdef NO_LIBGEN_H\n \tCOMPAT_CFLAGS += -DNO_LIBGEN_H\n-\tCOMPAT_OBJS += compat/basename.o\n+\tCOMPAT_OBJS += lib/compat/basename.o\n endif\n \n ifdef USE_LIBPCRE1\n@@ -1816,7 +1816,7 @@ else\n         endif\n         ifdef USE_CURL_FOR_IMAP_SEND\n \t\tBASIC_CFLAGS += -DUSE_CURL_FOR_IMAP_SEND\n-\t\tIMAP_SEND_BUILDDEPS = http.o\n+\t\tIMAP_SEND_BUILDDEPS = lib/http.o\n \t\tIMAP_SEND_LDFLAGS += $(CURL_LIBCURL)\n         endif\n         ifndef NO_EXPAT\n@@ -1937,11 +1937,11 @@ ifdef NO_NSEC\n endif\n ifdef SNPRINTF_RETURNS_BOGUS\n \tCOMPAT_CFLAGS += -DSNPRINTF_RETURNS_BOGUS\n-\tCOMPAT_OBJS += compat/snprintf.o\n+\tCOMPAT_OBJS += lib/compat/snprintf.o\n endif\n ifdef FREAD_READS_DIRECTORIES\n \tCOMPAT_CFLAGS += -DFREAD_READS_DIRECTORIES\n-\tCOMPAT_OBJS += compat/fopen.o\n+\tCOMPAT_OBJS += lib/compat/fopen.o\n endif\n ifdef OPEN_RETURNS_EINTR\n \tCOMPAT_CFLAGS += -DOPEN_RETURNS_EINTR\n@@ -1956,38 +1956,38 @@ endif\n ifdef NO_POLL\n \tNO_POLL_H = YesPlease\n \tNO_SYS_POLL_H = YesPlease\n-\tCOMPAT_CFLAGS += -DNO_POLL -Icompat/poll\n-\tCOMPAT_OBJS += compat/poll/poll.o\n+\tCOMPAT_CFLAGS += -DNO_POLL -Ilib/compat/poll\n+\tCOMPAT_OBJS += lib/compat/poll/poll.o\n endif\n ifdef NO_STRCASESTR\n \tCOMPAT_CFLAGS += -DNO_STRCASESTR\n-\tCOMPAT_OBJS += compat/strcasestr.o\n+\tCOMPAT_OBJS += lib/compat/strcasestr.o\n endif\n ifdef NO_STRLCPY\n \tCOMPAT_CFLAGS += -DNO_STRLCPY\n-\tCOMPAT_OBJS += compat/strlcpy.o\n+\tCOMPAT_OBJS += lib/compat/strlcpy.o\n endif\n ifdef NO_STRTOUMAX\n \tCOMPAT_CFLAGS += -DNO_STRTOUMAX\n-\tCOMPAT_OBJS += compat/strtoumax.o compat/strtoimax.o\n+\tCOMPAT_OBJS += lib/compat/strtoumax.o lib/compat/strtoimax.o\n endif\n ifdef NO_STRTOULL\n \tCOMPAT_CFLAGS += -DNO_STRTOULL\n endif\n ifdef NO_SETENV\n \tCOMPAT_CFLAGS += -DNO_SETENV\n-\tCOMPAT_OBJS += compat/setenv.o\n+\tCOMPAT_OBJS += lib/compat/setenv.o\n endif\n ifdef NO_MKDTEMP\n \tCOMPAT_CFLAGS += -DNO_MKDTEMP\n endif\n ifdef MKDIR_WO_TRAILING_SLASH\n \tCOMPAT_CFLAGS += -DMKDIR_WO_TRAILING_SLASH\n-\tCOMPAT_OBJS += compat/mkdir.o\n+\tCOMPAT_OBJS += lib/compat/mkdir.o\n endif\n ifdef NO_UNSETENV\n \tCOMPAT_CFLAGS += -DNO_UNSETENV\n-\tCOMPAT_OBJS += compat/unsetenv.o\n+\tCOMPAT_OBJS += lib/compat/unsetenv.o\n endif\n ifdef NO_SYS_SELECT_H\n \tBASIC_CFLAGS += -DNO_SYS_SELECT_H\n@@ -2009,11 +2009,11 @@ ifdef NO_INITGROUPS\n endif\n ifdef NO_MMAP\n \tCOMPAT_CFLAGS += -DNO_MMAP\n-\tCOMPAT_OBJS += compat/mmap.o\n+\tCOMPAT_OBJS += lib/compat/mmap.o\n else\n         ifdef USE_WIN32_MMAP\n \t\tCOMPAT_CFLAGS += -DUSE_WIN32_MMAP\n-\t\tCOMPAT_OBJS += compat/win32mmap.o\n+\t\tCOMPAT_OBJS += lib/compat/win32mmap.o\n         endif\n endif\n ifdef MMAP_PREVENTS_DELETE\n@@ -2031,7 +2031,7 @@ ifdef NO_SETITIMER\n endif\n ifdef NO_PREAD\n \tCOMPAT_CFLAGS += -DNO_PREAD\n-\tCOMPAT_OBJS += compat/pread.o\n+\tCOMPAT_OBJS += lib/compat/pread.o\n endif\n ifdef NO_FAST_WORKING_DIRECTORY\n \tBASIC_CFLAGS += -DNO_FAST_WORKING_DIRECTORY\n@@ -2041,7 +2041,7 @@ ifdef NO_TRUSTABLE_FILEMODE\n endif\n ifdef NEEDS_MODE_TRANSLATION\n \tCOMPAT_CFLAGS += -DNEEDS_MODE_TRANSLATION\n-\tCOMPAT_OBJS += compat/stat.o\n+\tCOMPAT_OBJS += lib/compat/stat.o\n endif\n ifdef NO_IPV6\n \tBASIC_CFLAGS += -DNO_IPV6\n@@ -2057,18 +2057,18 @@ else\n endif\n endif\n ifdef NO_INET_NTOP\n-\tLIB_OBJS += compat/inet_ntop.o\n+\tLIB_OBJS += lib/compat/inet_ntop.o\n \tBASIC_CFLAGS += -DNO_INET_NTOP\n endif\n ifdef NO_INET_PTON\n-\tLIB_OBJS += compat/inet_pton.o\n+\tLIB_OBJS += lib/compat/inet_pton.o\n \tBASIC_CFLAGS += -DNO_INET_PTON\n endif\n ifdef NO_UNIX_SOCKETS\n \tBASIC_CFLAGS += -DNO_UNIX_SOCKETS\n else\n-\tLIB_OBJS += unix-socket.o\n-\tLIB_OBJS += unix-stream-server.o\n+\tLIB_OBJS += lib/unix-socket.o\n+\tLIB_OBJS += lib/unix-stream-server.o\n endif\n \n # Simple IPC requires threads and platform-specific IPC support.\n@@ -2084,14 +2084,14 @@ endif\n #\n ifdef USE_WIN32_IPC\n \tBASIC_CFLAGS += -DSUPPORTS_SIMPLE_IPC\n-\tLIB_OBJS += compat/simple-ipc/ipc-shared.o\n-\tLIB_OBJS += compat/simple-ipc/ipc-win32.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-shared.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-win32.o\n else\n ifndef NO_PTHREADS\n ifndef NO_UNIX_SOCKETS\n \tBASIC_CFLAGS += -DSUPPORTS_SIMPLE_IPC\n-\tLIB_OBJS += compat/simple-ipc/ipc-shared.o\n-\tLIB_OBJS += compat/simple-ipc/ipc-unix-socket.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-shared.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-unix-socket.o\n endif\n endif\n endif\n@@ -2126,7 +2126,7 @@ ifdef OPENSSL_SHA1\n \tBASIC_CFLAGS += -DSHA1_OPENSSL\n else\n ifdef BLK_SHA1\n-\tLIB_OBJS += block-sha1/sha1.o\n+\tLIB_OBJS += lib/block-sha1/sha1.o\n \tBASIC_CFLAGS += -DSHA1_BLK\n else\n ifdef APPLE_COMMON_CRYPTO_SHA1\n@@ -2134,7 +2134,7 @@ ifdef APPLE_COMMON_CRYPTO_SHA1\n \tBASIC_CFLAGS += -DSHA1_APPLE\n else\n \tBASIC_CFLAGS += -DSHA1_DC\n-\tLIB_OBJS += sha1dc_git.o\n+\tLIB_OBJS += lib/sha1dc_git.o\n ifdef DC_SHA1_EXTERNAL\n         ifdef DC_SHA1_SUBMODULE\n                 ifneq ($(DC_SHA1_SUBMODULE),auto)\n@@ -2145,12 +2145,12 @@ $(error Only set DC_SHA1_EXTERNAL or DC_SHA1_SUBMODULE, not both)\n \tEXTLIBS += -lsha1detectcoll\n else\n ifdef DC_SHA1_SUBMODULE\n-\tLIB_OBJS += sha1collisiondetection/lib/sha1.o\n-\tLIB_OBJS += sha1collisiondetection/lib/ubc_check.o\n+\tLIB_OBJS += lib/sha1collisiondetection/lib/sha1.o\n+\tLIB_OBJS += lib/sha1collisiondetection/lib/ubc_check.o\n \tBASIC_CFLAGS += -DDC_SHA1_SUBMODULE\n else\n-\tLIB_OBJS += sha1dc/sha1.o\n-\tLIB_OBJS += sha1dc/ubc_check.o\n+\tLIB_OBJS += lib/sha1dc/sha1.o\n+\tLIB_OBJS += lib/sha1dc/ubc_check.o\n endif\n \tBASIC_CFLAGS += \\\n \t\t-DSHA1DC_NO_STANDARD_INCLUDES \\\n@@ -2170,7 +2170,7 @@ endif\n else\n ifdef BLK_SHA1_UNSAFE\n ifndef BLK_SHA1\n-\tLIB_OBJS += block-sha1/sha1.o\n+\tLIB_OBJS += lib/block-sha1/sha1.o\n \tBASIC_CFLAGS += -DSHA1_BLK_UNSAFE\n endif\n else\n@@ -2195,23 +2195,23 @@ ifdef GCRYPT_SHA256\n \tBASIC_CFLAGS += -DSHA256_GCRYPT\n \tEXTLIBS += -lgcrypt\n else\n-\tLIB_OBJS += sha256/block/sha256.o\n+\tLIB_OBJS += lib/sha256/block/sha256.o\n \tBASIC_CFLAGS += -DSHA256_BLK\n endif\n endif\n endif\n \n ifdef SHA1_MAX_BLOCK_SIZE\n-\tLIB_OBJS += compat/sha1-chunked.o\n+\tLIB_OBJS += lib/compat/sha1-chunked.o\n \tBASIC_CFLAGS += -DSHA1_MAX_BLOCK_SIZE=\"$(SHA1_MAX_BLOCK_SIZE)\"\n endif\n ifdef NO_HSTRERROR\n \tCOMPAT_CFLAGS += -DNO_HSTRERROR\n-\tCOMPAT_OBJS += compat/hstrerror.o\n+\tCOMPAT_OBJS += lib/compat/hstrerror.o\n endif\n ifdef NO_MEMMEM\n \tCOMPAT_CFLAGS += -DNO_MEMMEM\n-\tCOMPAT_OBJS += compat/memmem.o\n+\tCOMPAT_OBJS += lib/compat/memmem.o\n endif\n ifdef NO_GETPAGESIZE\n \tCOMPAT_CFLAGS += -DNO_GETPAGESIZE\n@@ -2222,7 +2222,7 @@ endif\n ifdef HAVE_ISO_QSORT_S\n \tCOMPAT_CFLAGS += -DHAVE_ISO_QSORT_S\n else\n-\tCOMPAT_OBJS += compat/qsort_s.o\n+\tCOMPAT_OBJS += lib/compat/qsort_s.o\n endif\n ifdef RUNTIME_PREFIX\n \tCOMPAT_CFLAGS += -DRUNTIME_PREFIX\n@@ -2259,12 +2259,12 @@ ifdef UNRELIABLE_FSTAT\n \tBASIC_CFLAGS += -DUNRELIABLE_FSTAT\n endif\n ifdef NO_REGEX\n-\tCOMPAT_CFLAGS += -Icompat/regex\n-\tCOMPAT_OBJS += compat/regex/regex.o\n+\tCOMPAT_CFLAGS += -Ilib/compat/regex\n+\tCOMPAT_OBJS += lib/compat/regex/regex.o\n else\n ifdef USE_ENHANCED_BASIC_REGULAR_EXPRESSIONS\n \tCOMPAT_CFLAGS += -DUSE_ENHANCED_BASIC_REGULAR_EXPRESSIONS\n-\tCOMPAT_OBJS += compat/regcomp_enhanced.o\n+\tCOMPAT_OBJS += lib/compat/regcomp_enhanced.o\n endif\n endif\n ifdef NATIVE_CRLF\n@@ -2273,7 +2273,7 @@ endif\n \n ifdef OVERRIDE_STRDUP\n \tCOMPAT_CFLAGS += -DOVERRIDE_STRDUP\n-\tCOMPAT_OBJS += compat/strdup.o\n+\tCOMPAT_OBJS += lib/compat/strdup.o\n endif\n \n ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT\n@@ -2335,7 +2335,7 @@ ifneq ($(findstring openssl,$(CSPRNG_METHOD)),)\n endif\n \n ifndef HAVE_PLATFORM_PROCINFO\n-\tCOMPAT_OBJS += compat/stub/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/stub/procinfo.o\n endif\n \n ifdef RUNTIME_PREFIX\n@@ -2365,25 +2365,25 @@ endif\n \n ifdef FILENO_IS_A_MACRO\n \tCOMPAT_CFLAGS += -DFILENO_IS_A_MACRO\n-\tCOMPAT_OBJS += compat/fileno.o\n+\tCOMPAT_OBJS += lib/compat/fileno.o\n endif\n \n ifdef NEED_ACCESS_ROOT_HANDLER\n \tCOMPAT_CFLAGS += -DNEED_ACCESS_ROOT_HANDLER\n-\tCOMPAT_OBJS += compat/access.o\n+\tCOMPAT_OBJS += lib/compat/access.o\n endif\n \n ifdef FSMONITOR_DAEMON_BACKEND\n \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_DAEMON_BACKEND\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n endif\n \n ifdef FSMONITOR_OS_SETTINGS\n \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_OS_SETTINGS\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-ipc-$(FSMONITOR_OS_SETTINGS).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-path-utils-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-ipc-$(FSMONITOR_OS_SETTINGS).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-path-utils-$(FSMONITOR_DAEMON_BACKEND).o\n endif\n \n ifdef WITH_BREAKING_CHANGES\n@@ -2667,9 +2667,9 @@ git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) \\\n \t\t$(filter %.o,$^) $(LIBS)\n \n-help.sp help.s help.o: command-list.h\n+lib/help.sp lib/help.s lib/help.o: command-list.h\n builtin/bugreport.sp builtin/bugreport.s builtin/bugreport.o: hook-list.h\n-hook.sp hook.s hook.o: hook-list.h\n+lib/hook.sp lib/hook.s lib/hook.o: hook-list.h\n \n builtin/help.sp builtin/help.s builtin/help.o: config-list.h GIT-PREFIX\n builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n@@ -2680,13 +2680,13 @@ builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n PAGER_ENV_SQ = $(subst ','\\'',$(PAGER_ENV))\n PAGER_ENV_CQ = \"$(subst \",\\\",$(subst \\,\\\\,$(PAGER_ENV)))\"\n PAGER_ENV_CQ_SQ = $(subst ','\\'',$(PAGER_ENV_CQ))\n-pager.sp pager.s pager.o: EXTRA_CPPFLAGS = \\\n+lib/pager.sp lib/pager.s lib/pager.o: EXTRA_CPPFLAGS = \\\n \t-DPAGER_ENV='$(PAGER_ENV_CQ_SQ)'\n \n-version-def.h: version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT\n+version-def.h: lib/version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT\n \t$(QUIET_GEN)$(call version_gen,\"$(shell pwd)\",$<,$@)\n \n-version.sp version.s version.o: version-def.h\n+lib/version.sp lib/version.s lib/version.o: version-def.h\n \n $(BUILT_INS): git$X\n \t$(QUIET_BUILT_IN)$(RM) $@ && \\\n@@ -2879,7 +2879,7 @@ ifdef INCLUDE_LIBGIT_RS\n endif\n \n ifndef NO_CURL\n-\tOBJECTS += http.o http-walker.o remote-curl.o\n+\tOBJECTS += lib/http.o lib/http-walker.o remote-curl.o\n endif\n \n .PHONY: objects\n@@ -2944,44 +2944,44 @@ compile_commands.json:\n \t@if test -s $@+; then mv $@+ $@; else $(RM) $@+; fi\n endif\n \n-exec-cmd.sp exec-cmd.s exec-cmd.o: GIT-PREFIX\n-exec-cmd.sp exec-cmd.s exec-cmd.o: EXTRA_CPPFLAGS = \\\n+lib/exec-cmd.sp lib/exec-cmd.s lib/exec-cmd.o: GIT-PREFIX\n+lib/exec-cmd.sp lib/exec-cmd.s lib/exec-cmd.o: EXTRA_CPPFLAGS = \\\n \t'-DGIT_EXEC_PATH=\"$(gitexecdir_SQ)\"' \\\n \t'-DGIT_LOCALE_PATH=\"$(localedir_relative_SQ)\"' \\\n \t'-DBINDIR=\"$(bindir_relative_SQ)\"' \\\n \t'-DFALLBACK_RUNTIME_PREFIX=\"$(prefix_SQ)\"'\n \n-setup.sp setup.s setup.o: GIT-PREFIX\n-setup.sp setup.s setup.o: EXTRA_CPPFLAGS = \\\n+lib/setup.sp lib/setup.s lib/setup.o: GIT-PREFIX\n+lib/setup.sp lib/setup.s lib/setup.o: EXTRA_CPPFLAGS = \\\n \t-DDEFAULT_GIT_TEMPLATE_DIR='\"$(template_dir_SQ)\"'\n \n-config.sp config.s config.o: GIT-PREFIX\n-config.sp config.s config.o: EXTRA_CPPFLAGS = \\\n+lib/config.sp lib/config.s lib/config.o: GIT-PREFIX\n+lib/config.sp lib/config.s lib/config.o: EXTRA_CPPFLAGS = \\\n \t-DETC_GITCONFIG='\"$(ETC_GITCONFIG_SQ)\"'\n \n-attr.sp attr.s attr.o: GIT-PREFIX\n-attr.sp attr.s attr.o: EXTRA_CPPFLAGS = \\\n+lib/attr.sp lib/attr.s lib/attr.o: GIT-PREFIX\n+lib/attr.sp lib/attr.s lib/attr.o: EXTRA_CPPFLAGS = \\\n \t-DETC_GITATTRIBUTES='\"$(ETC_GITATTRIBUTES_SQ)\"'\n \n-gettext.sp gettext.s gettext.o: GIT-PREFIX\n-gettext.sp gettext.s gettext.o: EXTRA_CPPFLAGS = \\\n+lib/gettext.sp lib/gettext.s lib/gettext.o: GIT-PREFIX\n+lib/gettext.sp lib/gettext.s lib/gettext.o: EXTRA_CPPFLAGS = \\\n \t-DGIT_LOCALE_PATH='\"$(localedir_relative_SQ)\"'\n \n-http-push.sp http.sp http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n+http-push.sp lib/http.sp lib/http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n \t-DCURL_DISABLE_TYPECHECK\n \n pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n \n ifdef NO_EXPAT\n-http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n+lib/http-walker.sp lib/http-walker.s lib/http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n endif\n \n ifdef NO_REGEX\n-compat/regex/regex.sp compat/regex/regex.o: EXTRA_CPPFLAGS = \\\n+lib/compat/regex/regex.sp lib/compat/regex/regex.o: EXTRA_CPPFLAGS = \\\n \t-DGAWK -DNO_MBSUPPORT\n endif\n \n-headless-git.o: compat/win32/headless.c GIT-CFLAGS\n+headless-git.o: lib/compat/win32/headless.c GIT-CFLAGS\n \t$(QUIET_CC)$(CC) $(ALL_CFLAGS) $(COMPAT_CFLAGS) \\\n \t\t-fno-stack-protector -o $@ -c -Wall -Wwrite-strings $<\n \n@@ -2995,10 +2995,10 @@ git-imap-send$X: imap-send.o $(IMAP_SEND_BUILDDEPS) GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(IMAP_SEND_LDFLAGS) $(LIBS)\n \n-git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)\n+git-http-fetch$X: lib/http.o lib/http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(LIBS)\n-git-http-push$X: http.o http-push.o GIT-LDFLAGS $(GITLIBS)\n+git-http-push$X: lib/http.o http-push.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)\n \n@@ -3008,7 +3008,7 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY)\n \tln -s $< $@ 2>/dev/null || \\\n \tcp $< $@\n \n-$(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS)\n+$(REMOTE_CURL_PRIMARY): remote-curl.o lib/http.o lib/http-walker.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)\n \n@@ -3172,8 +3172,8 @@ LOCALIZED_C_CORE += builtin/clone.c\n LOCALIZED_C_CORE += builtin/index-pack.c\n LOCALIZED_C_CORE += builtin/push.c\n LOCALIZED_C_CORE += builtin/reset.c\n-LOCALIZED_C_CORE += remote.c\n-LOCALIZED_C_CORE += wt-status.c\n+LOCALIZED_C_CORE += lib/remote.c\n+LOCALIZED_C_CORE += lib/wt-status.c\n \n LOCALIZED_C_CORE_GEN_PO = $(LOCALIZED_C_CORE:%=.build/pot/po/%.po)\n \n@@ -3412,18 +3412,18 @@ $(SP_OBJ): %.sp: %.c %.o $(GENERATED_H)\n .PHONY: sparse\n sparse: $(SP_OBJ)\n \n-EXCEPT_HDRS := $(GENERATED_H) unicode-width.h compat/% xdiff/% $(UNIT_TEST_DIR)/clar/% $(UNIT_TEST_DIR)/clar/clar/%\n+EXCEPT_HDRS := $(GENERATED_H) lib/unicode-width.h lib/compat/% lib/xdiff/% $(UNIT_TEST_DIR)/clar/% $(UNIT_TEST_DIR)/clar/clar/%\n ifndef OPENSSL_SHA1\n-\tEXCEPT_HDRS += sha1/openssl.h\n+\tEXCEPT_HDRS += lib/sha1/openssl.h\n endif\n ifndef OPENSSL_SHA256\n-\tEXCEPT_HDRS += sha256/openssl.h\n+\tEXCEPT_HDRS += lib/sha256/openssl.h\n endif\n ifndef NETTLE_SHA256\n-\tEXCEPT_HDRS += sha256/nettle.h\n+\tEXCEPT_HDRS += lib/sha256/nettle.h\n endif\n ifndef GCRYPT_SHA256\n-\tEXCEPT_HDRS += sha256/gcrypt.h\n+\tEXCEPT_HDRS += lib/sha256/gcrypt.h\n endif\n CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))\n HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))\n@@ -3775,13 +3775,13 @@ GIT_ARCHIVE_EXTRA_FILES = \\\n \t--add-file=.dist-tmp-dir/git-gui/version\n ifdef DC_SHA1_SUBMODULE\n GIT_ARCHIVE_EXTRA_FILES += \\\n-\t--prefix=$(GIT_TARNAME)/sha1collisiondetection/ \\\n-\t--add-file=sha1collisiondetection/LICENSE.txt \\\n-\t--prefix=$(GIT_TARNAME)/sha1collisiondetection/lib/ \\\n-\t--add-file=sha1collisiondetection/lib/sha1.c \\\n-\t--add-file=sha1collisiondetection/lib/sha1.h \\\n-\t--add-file=sha1collisiondetection/lib/ubc_check.c \\\n-\t--add-file=sha1collisiondetection/lib/ubc_check.h\n+\t--prefix=$(GIT_TARNAME)/lib/sha1collisiondetection/ \\\n+\t--add-file=lib/sha1collisiondetection/LICENSE.txt \\\n+\t--prefix=$(GIT_TARNAME)/lib/sha1collisiondetection/lib/ \\\n+\t--add-file=lib/sha1collisiondetection/lib/sha1.c \\\n+\t--add-file=lib/sha1collisiondetection/lib/sha1.h \\\n+\t--add-file=lib/sha1collisiondetection/lib/ubc_check.c \\\n+\t--add-file=lib/sha1collisiondetection/lib/ubc_check.h\n endif\n dist: git-archive$(X) configure\n \t@$(RM) -r .dist-tmp-dir\n@@ -3911,7 +3911,7 @@ ifdef MSVC\n \t$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))\n \t$(RM) $(patsubst %.exe,%.iobj,$(TEST_PROGRAMS))\n \t$(RM) $(patsubst %.exe,%.ipdb,$(TEST_PROGRAMS))\n-\t$(RM) compat/vcbuild/MSVC-DEFS-GEN\n+\t$(RM) lib/compat/vcbuild/MSVC-DEFS-GEN\n endif\n \n .PHONY: all install profile-clean cocciclean clean strip\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 8719e09f66..7af406439e 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -21,17 +21,17 @@ ifdef MSVC\n \n \t# Generate and include makefile variables that point to the\n \t# currently installed set of MSVC command line tools.\n-compat/vcbuild/MSVC-DEFS-GEN: compat/vcbuild/find_vs_env.bat\n+lib/compat/vcbuild/MSVC-DEFS-GEN: lib/compat/vcbuild/find_vs_env.bat\n \t@\"$<\" | tr '\\\\' / >\"$@\"\n-include compat/vcbuild/MSVC-DEFS-GEN\n+include lib/compat/vcbuild/MSVC-DEFS-GEN\n \n \t# See if vcpkg and the vcpkg-build versions of the third-party\n \t# libraries that we use are installed.  We include the result\n \t# to get $(vcpkg_*) variables defined for the Makefile.\n ifeq (,$(SKIP_VCPKG))\n-compat/vcbuild/VCPKG-DEFS: compat/vcbuild/vcpkg_install.bat\n+lib/compat/vcbuild/VCPKG-DEFS: lib/compat/vcbuild/vcpkg_install.bat\n \t@\"$<\"\n-include compat/vcbuild/VCPKG-DEFS\n+include lib/compat/vcbuild/VCPKG-DEFS\n endif\n endif\n \n@@ -62,7 +62,7 @@ ifeq ($(uname_S),Linux)\n \tHAVE_SYSINFO = YesPlease\n \tPROCFS_EXECUTABLE_PATH = /proc/self/exe\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n-\tCOMPAT_OBJS += compat/linux/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/linux/procinfo.o\n \tEXTLIBS += -ldl\n \t# centos7/rhel7 provides gcc 4.8.5 and zlib 1.2.7.\n         ifneq ($(findstring .el7.,$(uname_R)),)\n@@ -152,7 +152,7 @@ ifeq ($(uname_S),Darwin)\n \tNO_MEMMEM = YesPlease\n \tUSE_ST_TIMESPEC = YesPlease\n \tHAVE_DEV_TTY = YesPlease\n-\tCOMPAT_OBJS += compat/precompose_utf8.o\n+\tCOMPAT_OBJS += lib/compat/precompose_utf8.o\n \tBASIC_CFLAGS += -DPRECOMPOSE_UNICODE\n \tBASIC_CFLAGS += -DPROTECT_HFS_DEFAULT=1\n \tHAVE_BSD_SYSCTL = YesPlease\n@@ -161,7 +161,7 @@ ifeq ($(uname_S),Darwin)\n \tCSPRNG_METHOD = arc4random\n \tUSE_ENHANCED_BASIC_REGULAR_EXPRESSIONS = YesPlease\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n-\tCOMPAT_OBJS += compat/darwin/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/darwin/procinfo.o\n \n         ifeq ($(uname_M),arm64)\n \t\tHOMEBREW_PREFIX = /opt/homebrew\n@@ -292,7 +292,7 @@ ifeq ($(uname_O),Cygwin)\n \tUNRELIABLE_FSTAT = UnfortunatelyYes\n \tOBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo\n \tMMAP_PREVENTS_DELETE = UnfortunatelyYes\n-\tCOMPAT_OBJS += compat/win32/path-utils.o\n+\tCOMPAT_OBJS += lib/compat/win32/path-utils.o\n \tFREAD_READS_DIRECTORIES = UnfortunatelyYes\n endif\n ifeq ($(uname_S),FreeBSD)\n@@ -523,17 +523,17 @@ ifeq (/mingw64,$(subst 32,64,$(subst clangarm,mingw,$(prefix))))\n \tETC_GITATTRIBUTES = ../etc/gitattributes\n endif\n \n-\tCC = compat/vcbuild/scripts/clink.pl\n-\tAR = compat/vcbuild/scripts/lib.pl\n+\tCC = lib/compat/vcbuild/scripts/clink.pl\n+\tAR = lib/compat/vcbuild/scripts/lib.pl\n \tCFLAGS =\n-\tBASIC_CFLAGS = -nologo -I. -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n-\tCOMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n-\t\tcompat/win32/flush.o \\\n-\t\tcompat/win32/path-utils.o \\\n-\t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/trace2_win32_process_info.o \\\n-\t\tcompat/win32/dirent.o\n-\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n+\tBASIC_CFLAGS = -nologo -I. -Ilib/compat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n+\tCOMPAT_OBJS = lib/compat/msvc.o lib/compat/winansi.o \\\n+\t\tlib/compat/win32/flush.o \\\n+\t\tlib/compat/win32/path-utils.o \\\n+\t\tlib/compat/win32/pthread.o lib/compat/win32/syslog.o \\\n+\t\tlib/compat/win32/trace2_win32_process_info.o \\\n+\t\tlib/compat/win32/dirent.o\n+\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Ilib/compat -Ilib/compat/regex -Ilib/compat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n \tBASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -ENTRY:wmainCRTStartup -SUBSYSTEM:CONSOLE\n \t# invalidcontinue.obj allows Git's source code to close the same file\n \t# handle twice, or to access the osfhandle of an already-closed stdout\n@@ -573,7 +573,7 @@ endif\n \n \tEXTRA_PROGRAMS += headless-git$X\n \n-compat/msvc.o: compat/msvc.c compat/mingw.c GIT-CFLAGS\n+lib/compat/msvc.o: lib/compat/msvc.c lib/compat/mingw.c GIT-CFLAGS\n endif\n ifeq ($(uname_S),Interix)\n \tNO_INITGROUPS = YesPlease\n@@ -724,14 +724,14 @@ ifeq ($(uname_S),MINGW)\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n \tCSPRNG_METHOD = rtlgenrandom\n \tBASIC_LDFLAGS += -municode\n-\tCOMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32\n+\tCOMPAT_CFLAGS += -DNOGDI -Ilib/compat -Ilib/compat/win32\n \tCOMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n-\tCOMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n-\t\tcompat/win32/trace2_win32_process_info.o \\\n-\t\tcompat/win32/flush.o \\\n-\t\tcompat/win32/path-utils.o \\\n-\t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/dirent.o\n+\tCOMPAT_OBJS += lib/compat/mingw.o lib/compat/winansi.o \\\n+\t\tlib/compat/win32/trace2_win32_process_info.o \\\n+\t\tlib/compat/win32/flush.o \\\n+\t\tlib/compat/win32/path-utils.o \\\n+\t\tlib/compat/win32/pthread.o lib/compat/win32/syslog.o \\\n+\t\tlib/compat/win32/dirent.o\n \tBASIC_CFLAGS += -DWIN32\n \tEXTLIBS += -lws2_32\n \tGITLIBS += git.res\ndiff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt\nindex a57c4b464f..446a6c889f 100644\n--- a/contrib/buildsystems/CMakeLists.txt\n+++ b/contrib/buildsystems/CMakeLists.txt\n@@ -62,10 +62,10 @@ if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS)\n endif()\n \n if(USE_VCPKG)\n-\tset(VCPKG_DIR \"${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg\")\n+\tset(VCPKG_DIR \"${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg\")\n \tif(NOT EXISTS ${VCPKG_DIR})\n \t\tmessage(\"Initializing vcpkg and building the Git's dependencies (this will take a while...)\")\n-\t\texecute_process(COMMAND ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg_install.bat)\n+\t\texecute_process(COMMAND ${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg_install.bat)\n \tendif()\n \tlist(APPEND CMAKE_PREFIX_PATH \"${VCPKG_DIR}/installed/x64-windows\")\n \n@@ -194,7 +194,7 @@ else()\n \tfind_program(MSGFMT_EXE msgfmt)\n \tif(NOT MSGFMT_EXE)\n \t\tif(USE_VCPKG)\n-\t\t\tset(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)\n+\t\t\tset(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)\n \t\tendif()\n \t\tif(NOT EXISTS ${MSGFMT_EXE})\n \t\t\tmessage(WARNING \"Text Translations won't be built\")\n@@ -212,13 +212,14 @@ endif()\n \n #default behaviour\n include_directories(${CMAKE_SOURCE_DIR})\n+include_directories(${CMAKE_SOURCE_DIR}/lib)\n add_compile_definitions(GIT_HOST_CPU=\"${CMAKE_SYSTEM_PROCESSOR}\")\n add_compile_definitions(SHA256_BLK INTERNAL_QSORT RUNTIME_PREFIX)\n add_compile_definitions(NO_OPENSSL SHA1_DC SHA1DC_NO_STANDARD_INCLUDES\n \t\t\tSHA1DC_INIT_SAFE_HASH_DEFAULT=0\n \t\t\tSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"git-compat-util.h\"\n \t\t\tSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"git-compat-util.h\" )\n-list(APPEND compat_SOURCES sha1dc_git.c sha1dc/sha1.c sha1dc/ubc_check.c block-sha1/sha1.c sha256/block/sha256.c compat/qsort_s.c)\n+list(APPEND compat_SOURCES lib/sha1dc_git.c lib/sha1dc/sha1.c lib/sha1dc/ubc_check.c lib/block-sha1/sha1.c lib/sha256/block/sha256.c lib/compat/qsort_s.c)\n \n \n add_compile_definitions(PAGER_ENV=\"LESS=FRX LV=-c\"\n@@ -248,43 +249,43 @@ endif()\n #Platform Specific\n if(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n \tif(CMAKE_C_COMPILER_ID STREQUAL \"MSVC\" OR CMAKE_C_COMPILER_ID STREQUAL \"Clang\")\n-\t\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/vcbuild/include)\n+\t\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/include)\n \t\tadd_compile_definitions(_CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)\n \tendif()\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/win32)\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/win32)\n \tadd_compile_definitions(HAVE_ALLOCA_H NO_POSIX_GOODIES NATIVE_CRLF NO_UNIX_SOCKETS WIN32\n \t\t\t\t_CONSOLE DETECT_MSYS_TTY STRIP_EXTENSION=\".exe\"  NO_SYMLINK_HEAD UNRELIABLE_FSTAT\n \t\t\t\tNOGDI OBJECT_CREATION_MODE=1 __USE_MINGW_ANSI_STDIO=0\n \t\t\t\tOVERRIDE_STRDUP MMAP_PREVENTS_DELETE USE_WIN32_MMAP\n \t\t\t\tHAVE_WPGMPTR ENSURE_MSYSTEM_IS_SET HAVE_RTLGENRANDOM)\n \tlist(APPEND compat_SOURCES\n-\t\tcompat/mingw.c\n-\t\tcompat/winansi.c\n-\t\tcompat/win32/flush.c\n-\t\tcompat/win32/path-utils.c\n-\t\tcompat/win32/pthread.c\n-\t\tcompat/win32mmap.c\n-\t\tcompat/win32/syslog.c\n-\t\tcompat/win32/trace2_win32_process_info.c\n-\t\tcompat/win32/dirent.c\n-\t\tcompat/strdup.c)\n+\t\tlib/compat/mingw.c\n+\t\tlib/compat/winansi.c\n+\t\tlib/compat/win32/flush.c\n+\t\tlib/compat/win32/path-utils.c\n+\t\tlib/compat/win32/pthread.c\n+\t\tlib/compat/win32mmap.c\n+\t\tlib/compat/win32/syslog.c\n+\t\tlib/compat/win32/trace2_win32_process_info.c\n+\t\tlib/compat/win32/dirent.c\n+\t\tlib/compat/strdup.c)\n \tset(NO_UNIX_SOCKETS 1)\n \n elseif(CMAKE_SYSTEM_NAME STREQUAL \"Linux\")\n \tadd_compile_definitions(PROCFS_EXECUTABLE_PATH=\"/proc/self/exe\" HAVE_DEV_TTY )\n-\tlist(APPEND compat_SOURCES unix-socket.c unix-stream-server.c compat/linux/procinfo.c)\n+\tlist(APPEND compat_SOURCES lib/unix-socket.c lib/unix-stream-server.c lib/compat/linux/procinfo.c)\n elseif(CMAKE_SYSTEM_NAME STREQUAL \"Darwin\")\n-\tlist(APPEND compat_SOURCES compat/darwin/procinfo.c)\n+\tlist(APPEND compat_SOURCES lib/compat/darwin/procinfo.c)\n endif()\n \n if(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n-\tlist(APPEND compat_SOURCES compat/simple-ipc/ipc-shared.c compat/simple-ipc/ipc-win32.c)\n+\tlist(APPEND compat_SOURCES lib/compat/simple-ipc/ipc-shared.c lib/compat/simple-ipc/ipc-win32.c)\n \tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n \tset(SUPPORTS_SIMPLE_IPC 1)\n else()\n \t# Simple IPC requires both Unix sockets and pthreads on Unix-based systems.\n \tif(NOT NO_UNIX_SOCKETS AND NOT NO_PTHREADS)\n-\t\tlist(APPEND compat_SOURCES compat/simple-ipc/ipc-shared.c compat/simple-ipc/ipc-unix-socket.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/simple-ipc/ipc-shared.c lib/compat/simple-ipc/ipc-unix-socket.c)\n \t\tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n \t\tset(SUPPORTS_SIMPLE_IPC 1)\n \tendif()\n@@ -305,13 +306,13 @@ if(SUPPORTS_SIMPLE_IPC)\n \n \tif(FSMONITOR_DAEMON_BACKEND)\n \t\tadd_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-${FSMONITOR_DAEMON_BACKEND}.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-${FSMONITOR_DAEMON_BACKEND}.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-${FSMONITOR_OS_SETTINGS}.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-${FSMONITOR_DAEMON_BACKEND}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-${FSMONITOR_DAEMON_BACKEND}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-${FSMONITOR_DAEMON_BACKEND}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-${FSMONITOR_OS_SETTINGS}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-${FSMONITOR_DAEMON_BACKEND}.c)\n \n \t\tadd_compile_definitions(HAVE_FSMONITOR_OS_SETTINGS)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-${FSMONITOR_OS_SETTINGS}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-${FSMONITOR_OS_SETTINGS}.c)\n \tendif()\n endif()\n \n@@ -321,7 +322,7 @@ set(EXE_EXTENSION ${CMAKE_EXECUTABLE_SUFFIX})\n check_include_file(libgen.h HAVE_LIBGEN_H)\n if(NOT HAVE_LIBGEN_H)\n \tadd_compile_definitions(NO_LIBGEN_H)\n-\tlist(APPEND compat_SOURCES compat/basename.c)\n+\tlist(APPEND compat_SOURCES lib/compat/basename.c)\n endif()\n \n check_include_file(sys/sysinfo.h HAVE_SYSINFO)\n@@ -394,42 +395,42 @@ foreach(f ${function_checks})\n endforeach()\n \n if(NOT HAVE_POLL_H OR NOT HAVE_SYS_POLL_H OR NOT HAVE_POLL)\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/poll)\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/poll)\n \tadd_compile_definitions(NO_POLL)\n-\tlist(APPEND compat_SOURCES compat/poll/poll.c)\n+\tlist(APPEND compat_SOURCES lib/compat/poll/poll.c)\n endif()\n \n if(NOT HAVE_STRCASESTR)\n-\tlist(APPEND compat_SOURCES compat/strcasestr.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strcasestr.c)\n endif()\n \n if(NOT HAVE_STRLCPY)\n-\tlist(APPEND compat_SOURCES compat/strlcpy.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strlcpy.c)\n endif()\n \n if(NOT HAVE_STRTOUMAX)\n-\tlist(APPEND compat_SOURCES compat/strtoumax.c compat/strtoimax.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strtoumax.c lib/compat/strtoimax.c)\n endif()\n \n if(NOT HAVE_SETENV)\n-\tlist(APPEND compat_SOURCES compat/setenv.c)\n+\tlist(APPEND compat_SOURCES lib/compat/setenv.c)\n endif()\n \n if(NOT HAVE_PREAD)\n-\tlist(APPEND compat_SOURCES compat/pread.c)\n+\tlist(APPEND compat_SOURCES lib/compat/pread.c)\n endif()\n \n if(NOT HAVE_MEMMEM)\n-\tlist(APPEND compat_SOURCES compat/memmem.c)\n+\tlist(APPEND compat_SOURCES lib/compat/memmem.c)\n endif()\n \n if(NOT WIN32)\n \tif(NOT HAVE_UNSETENV)\n-\t\tlist(APPEND compat_SOURCES compat/unsetenv.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/unsetenv.c)\n \tendif()\n \n \tif(NOT HAVE_HSTRERROR)\n-\t\tlist(APPEND compat_SOURCES compat/hstrerror.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/hstrerror.c)\n \tendif()\n endif()\n \n@@ -486,7 +487,7 @@ int main(void)\n SNPRINTF_OK)\n if(NOT SNPRINTF_OK)\n \tadd_compile_definitions(SNPRINTF_RETURNS_BOGUS)\n-\tlist(APPEND compat_SOURCES compat/snprintf.c)\n+\tlist(APPEND compat_SOURCES lib/compat/snprintf.c)\n endif()\n \n check_c_source_runs(\"\n@@ -501,7 +502,7 @@ int main(void)\n FREAD_READS_DIRECTORIES_NO)\n if(NOT FREAD_READS_DIRECTORIES_NO)\n \tadd_compile_definitions(FREAD_READS_DIRECTORIES)\n-\tlist(APPEND compat_SOURCES compat/fopen.c)\n+\tlist(APPEND compat_SOURCES lib/compat/fopen.c)\n endif()\n \n check_c_source_compiles(\"\n@@ -516,8 +517,8 @@ int main(void)\n }\"\n HAVE_REGEX)\n if(NOT HAVE_REGEX)\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/regex)\n-\tlist(APPEND compat_SOURCES compat/regex/regex.c )\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/regex)\n+\tlist(APPEND compat_SOURCES lib/compat/regex/regex.c )\n \tadd_compile_definitions(NO_REGEX NO_MBSUPPORT GAWK)\n endif()\n \n@@ -670,10 +671,10 @@ list(TRANSFORM compat_SOURCES PREPEND \"${CMAKE_SOURCE_DIR}/\")\n add_custom_command(OUTPUT \"${CMAKE_BINARY_DIR}/version-def.h\"\n \tCOMMAND \"${SH_EXE}\" \"${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN\"\n \t\t\"${CMAKE_SOURCE_DIR}\"\n-\t\t\"${CMAKE_SOURCE_DIR}/version-def.h.in\"\n+\t\t\"${CMAKE_SOURCE_DIR}/lib/version-def.h.in\"\n \t\t\"${CMAKE_BINARY_DIR}/version-def.h\"\n \tDEPENDS \"${SH_EXE}\" \"${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN\"\n-\t\t\"${CMAKE_SOURCE_DIR}/version-def.h.in\"\n+\t\t\"${CMAKE_SOURCE_DIR}/lib/version-def.h.in\"\n \tVERBATIM)\n list(APPEND libgit_SOURCES \"${CMAKE_BINARY_DIR}/version-def.h\")\n \n@@ -732,7 +733,7 @@ if(WIN32)\n \t\tmessage(FATAL_ERROR \"Unhandled compiler: ${CMAKE_C_COMPILER_ID}\")\n \tendif()\n \n-\tadd_executable(headless-git ${CMAKE_SOURCE_DIR}/compat/win32/headless.c)\n+\tadd_executable(headless-git ${CMAKE_SOURCE_DIR}/lib/compat/win32/headless.c)\n \tif(CMAKE_C_COMPILER_ID STREQUAL \"GNU\" OR CMAKE_C_COMPILER_ID STREQUAL \"Clang\")\n \t\ttarget_link_options(headless-git PUBLIC -municode -Wl,-subsystem,windows)\n \telseif(CMAKE_C_COMPILER_ID STREQUAL \"MSVC\")\n@@ -767,15 +768,15 @@ add_executable(scalar ${CMAKE_SOURCE_DIR}/scalar.c)\n target_link_libraries(scalar common-main)\n \n if(CURL_FOUND)\n-\tadd_library(http_obj OBJECT ${CMAKE_SOURCE_DIR}/http.c)\n+\tadd_library(http_obj OBJECT ${CMAKE_SOURCE_DIR}/lib/http.c)\n \n \tadd_executable(git-imap-send ${CMAKE_SOURCE_DIR}/imap-send.c)\n \ttarget_link_libraries(git-imap-send http_obj common-main ${CURL_LIBRARIES})\n \n-\tadd_executable(git-http-fetch ${CMAKE_SOURCE_DIR}/http-walker.c ${CMAKE_SOURCE_DIR}/http-fetch.c)\n+\tadd_executable(git-http-fetch ${CMAKE_SOURCE_DIR}/lib/http-walker.c ${CMAKE_SOURCE_DIR}/http-fetch.c)\n \ttarget_link_libraries(git-http-fetch http_obj common-main ${CURL_LIBRARIES})\n \n-\tadd_executable(git-remote-http ${CMAKE_SOURCE_DIR}/http-walker.c ${CMAKE_SOURCE_DIR}/remote-curl.c)\n+\tadd_executable(git-remote-http ${CMAKE_SOURCE_DIR}/lib/http-walker.c ${CMAKE_SOURCE_DIR}/remote-curl.c)\n \ttarget_link_libraries(git-remote-http http_obj common-main ${CURL_LIBRARIES} )\n \n \tif(EXPAT_FOUND)\n@@ -1201,7 +1202,7 @@ string(REPLACE \"@USE_LIBPCRE2@\" \"\" git_build_options \"${git_build_options}\")\n string(REPLACE \"@WITH_BREAKING_CHANGES@\" \"\" git_build_options \"${git_build_options}\")\n string(REPLACE \"@X@\" \"${EXE_EXTENSION}\" git_build_options \"${git_build_options}\")\n if(USE_VCPKG)\n-\tstring(APPEND git_build_options \"PATH=\\\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\\\"\\n\")\n+\tstring(APPEND git_build_options \"PATH=\\\"$PATH:$TEST_DIRECTORY/../lib/compat/vcbuild/vcpkg/installed/x64-windows/bin\\\"\\n\")\n endif()\n file(WRITE ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS ${git_build_options})\n \ndiff --git a/git.rc.in b/git.rc.in\nindex e69444eef3..87cdefd50b 100644\n--- a/git.rc.in\n+++ b/git.rc.in\n@@ -21,4 +21,4 @@ BEGIN\n   END\n END\n \n-1 RT_MANIFEST \"compat/win32/git.manifest\"\n+1 RT_MANIFEST \"lib/compat/win32/git.manifest\"\ndiff --git a/abspath.c b/lib/abspath.c\nsimilarity index 100%\nrename from abspath.c\nrename to lib/abspath.c\ndiff --git a/abspath.h b/lib/abspath.h\nsimilarity index 100%\nrename from abspath.h\nrename to lib/abspath.h\ndiff --git a/add-interactive.c b/lib/add-interactive.c\nsimilarity index 100%\nrename from add-interactive.c\nrename to lib/add-interactive.c\ndiff --git a/add-interactive.h b/lib/add-interactive.h\nsimilarity index 100%\nrename from add-interactive.h\nrename to lib/add-interactive.h\ndiff --git a/add-patch.c b/lib/add-patch.c\nsimilarity index 100%\nrename from add-patch.c\nrename to lib/add-patch.c\ndiff --git a/add-patch.h b/lib/add-patch.h\nsimilarity index 100%\nrename from add-patch.h\nrename to lib/add-patch.h\ndiff --git a/advice.c b/lib/advice.c\nsimilarity index 100%\nrename from advice.c\nrename to lib/advice.c\ndiff --git a/advice.h b/lib/advice.h\nsimilarity index 100%\nrename from advice.h\nrename to lib/advice.h\ndiff --git a/alias.c b/lib/alias.c\nsimilarity index 100%\nrename from alias.c\nrename to lib/alias.c\ndiff --git a/alias.h b/lib/alias.h\nsimilarity index 100%\nrename from alias.h\nrename to lib/alias.h\ndiff --git a/alloc.c b/lib/alloc.c\nsimilarity index 100%\nrename from alloc.c\nrename to lib/alloc.c\ndiff --git a/alloc.h b/lib/alloc.h\nsimilarity index 100%\nrename from alloc.h\nrename to lib/alloc.h\ndiff --git a/apply.c b/lib/apply.c\nsimilarity index 100%\nrename from apply.c\nrename to lib/apply.c\ndiff --git a/apply.h b/lib/apply.h\nsimilarity index 100%\nrename from apply.h\nrename to lib/apply.h\ndiff --git a/archive-tar.c b/lib/archive-tar.c\nsimilarity index 100%\nrename from archive-tar.c\nrename to lib/archive-tar.c\ndiff --git a/archive-zip.c b/lib/archive-zip.c\nsimilarity index 100%\nrename from archive-zip.c\nrename to lib/archive-zip.c\ndiff --git a/archive.c b/lib/archive.c\nsimilarity index 100%\nrename from archive.c\nrename to lib/archive.c\ndiff --git a/archive.h b/lib/archive.h\nsimilarity index 100%\nrename from archive.h\nrename to lib/archive.h\ndiff --git a/attr.c b/lib/attr.c\nsimilarity index 100%\nrename from attr.c\nrename to lib/attr.c\ndiff --git a/attr.h b/lib/attr.h\nsimilarity index 100%\nrename from attr.h\nrename to lib/attr.h\ndiff --git a/banned.h b/lib/banned.h\nsimilarity index 100%\nrename from banned.h\nrename to lib/banned.h\ndiff --git a/base85.c b/lib/base85.c\nsimilarity index 100%\nrename from base85.c\nrename to lib/base85.c\ndiff --git a/base85.h b/lib/base85.h\nsimilarity index 100%\nrename from base85.h\nrename to lib/base85.h\ndiff --git a/bisect.c b/lib/bisect.c\nsimilarity index 100%\nrename from bisect.c\nrename to lib/bisect.c\ndiff --git a/bisect.h b/lib/bisect.h\nsimilarity index 100%\nrename from bisect.h\nrename to lib/bisect.h\ndiff --git a/blame.c b/lib/blame.c\nsimilarity index 100%\nrename from blame.c\nrename to lib/blame.c\ndiff --git a/blame.h b/lib/blame.h\nsimilarity index 100%\nrename from blame.h\nrename to lib/blame.h\ndiff --git a/blob.c b/lib/blob.c\nsimilarity index 100%\nrename from blob.c\nrename to lib/blob.c\ndiff --git a/blob.h b/lib/blob.h\nsimilarity index 100%\nrename from blob.h\nrename to lib/blob.h\ndiff --git a/block-sha1/sha1.c b/lib/block-sha1/sha1.c\nsimilarity index 100%\nrename from block-sha1/sha1.c\nrename to lib/block-sha1/sha1.c\ndiff --git a/block-sha1/sha1.h b/lib/block-sha1/sha1.h\nsimilarity index 100%\nrename from block-sha1/sha1.h\nrename to lib/block-sha1/sha1.h\ndiff --git a/bloom.c b/lib/bloom.c\nsimilarity index 100%\nrename from bloom.c\nrename to lib/bloom.c\ndiff --git a/bloom.h b/lib/bloom.h\nsimilarity index 100%\nrename from bloom.h\nrename to lib/bloom.h\ndiff --git a/branch.c b/lib/branch.c\nsimilarity index 100%\nrename from branch.c\nrename to lib/branch.c\ndiff --git a/branch.h b/lib/branch.h\nsimilarity index 100%\nrename from branch.h\nrename to lib/branch.h\ndiff --git a/builtin.h b/lib/builtin.h\nsimilarity index 100%\nrename from builtin.h\nrename to lib/builtin.h\ndiff --git a/bundle-uri.c b/lib/bundle-uri.c\nsimilarity index 100%\nrename from bundle-uri.c\nrename to lib/bundle-uri.c\ndiff --git a/bundle-uri.h b/lib/bundle-uri.h\nsimilarity index 100%\nrename from bundle-uri.h\nrename to lib/bundle-uri.h\ndiff --git a/bundle.c b/lib/bundle.c\nsimilarity index 100%\nrename from bundle.c\nrename to lib/bundle.c\ndiff --git a/bundle.h b/lib/bundle.h\nsimilarity index 100%\nrename from bundle.h\nrename to lib/bundle.h\ndiff --git a/cache-tree.c b/lib/cache-tree.c\nsimilarity index 100%\nrename from cache-tree.c\nrename to lib/cache-tree.c\ndiff --git a/cache-tree.h b/lib/cache-tree.h\nsimilarity index 100%\nrename from cache-tree.h\nrename to lib/cache-tree.h\ndiff --git a/cbtree.c b/lib/cbtree.c\nsimilarity index 100%\nrename from cbtree.c\nrename to lib/cbtree.c\ndiff --git a/cbtree.h b/lib/cbtree.h\nsimilarity index 100%\nrename from cbtree.h\nrename to lib/cbtree.h\ndiff --git a/chdir-notify.c b/lib/chdir-notify.c\nsimilarity index 100%\nrename from chdir-notify.c\nrename to lib/chdir-notify.c\ndiff --git a/chdir-notify.h b/lib/chdir-notify.h\nsimilarity index 100%\nrename from chdir-notify.h\nrename to lib/chdir-notify.h\ndiff --git a/checkout.c b/lib/checkout.c\nsimilarity index 100%\nrename from checkout.c\nrename to lib/checkout.c\ndiff --git a/checkout.h b/lib/checkout.h\nsimilarity index 100%\nrename from checkout.h\nrename to lib/checkout.h\ndiff --git a/chunk-format.c b/lib/chunk-format.c\nsimilarity index 100%\nrename from chunk-format.c\nrename to lib/chunk-format.c\ndiff --git a/chunk-format.h b/lib/chunk-format.h\nsimilarity index 100%\nrename from chunk-format.h\nrename to lib/chunk-format.h\ndiff --git a/color.c b/lib/color.c\nsimilarity index 100%\nrename from color.c\nrename to lib/color.c\ndiff --git a/color.h b/lib/color.h\nsimilarity index 100%\nrename from color.h\nrename to lib/color.h\ndiff --git a/column.c b/lib/column.c\nsimilarity index 100%\nrename from column.c\nrename to lib/column.c\ndiff --git a/column.h b/lib/column.h\nsimilarity index 100%\nrename from column.h\nrename to lib/column.h\ndiff --git a/combine-diff.c b/lib/combine-diff.c\nsimilarity index 100%\nrename from combine-diff.c\nrename to lib/combine-diff.c\ndiff --git a/commit-graph.c b/lib/commit-graph.c\nsimilarity index 100%\nrename from commit-graph.c\nrename to lib/commit-graph.c\ndiff --git a/commit-graph.h b/lib/commit-graph.h\nsimilarity index 100%\nrename from commit-graph.h\nrename to lib/commit-graph.h\ndiff --git a/commit-reach.c b/lib/commit-reach.c\nsimilarity index 100%\nrename from commit-reach.c\nrename to lib/commit-reach.c\ndiff --git a/commit-reach.h b/lib/commit-reach.h\nsimilarity index 100%\nrename from commit-reach.h\nrename to lib/commit-reach.h\ndiff --git a/commit-slab-decl.h b/lib/commit-slab-decl.h\nsimilarity index 100%\nrename from commit-slab-decl.h\nrename to lib/commit-slab-decl.h\ndiff --git a/commit-slab-impl.h b/lib/commit-slab-impl.h\nsimilarity index 100%\nrename from commit-slab-impl.h\nrename to lib/commit-slab-impl.h\ndiff --git a/commit-slab.h b/lib/commit-slab.h\nsimilarity index 100%\nrename from commit-slab.h\nrename to lib/commit-slab.h\ndiff --git a/commit.c b/lib/commit.c\nsimilarity index 100%\nrename from commit.c\nrename to lib/commit.c\ndiff --git a/commit.h b/lib/commit.h\nsimilarity index 100%\nrename from commit.h\nrename to lib/commit.h\ndiff --git a/common-exit.c b/lib/common-exit.c\nsimilarity index 100%\nrename from common-exit.c\nrename to lib/common-exit.c\ndiff --git a/common-init.c b/lib/common-init.c\nsimilarity index 100%\nrename from common-init.c\nrename to lib/common-init.c\ndiff --git a/common-init.h b/lib/common-init.h\nsimilarity index 100%\nrename from common-init.h\nrename to lib/common-init.h\ndiff --git a/compat/.gitattributes b/lib/compat/.gitattributes\nsimilarity index 100%\nrename from compat/.gitattributes\nrename to lib/compat/.gitattributes\ndiff --git a/compat/access.c b/lib/compat/access.c\nsimilarity index 100%\nrename from compat/access.c\nrename to lib/compat/access.c\ndiff --git a/compat/apple-common-crypto.h b/lib/compat/apple-common-crypto.h\nsimilarity index 100%\nrename from compat/apple-common-crypto.h\nrename to lib/compat/apple-common-crypto.h\ndiff --git a/compat/basename.c b/lib/compat/basename.c\nsimilarity index 100%\nrename from compat/basename.c\nrename to lib/compat/basename.c\ndiff --git a/compat/bswap.h b/lib/compat/bswap.h\nsimilarity index 100%\nrename from compat/bswap.h\nrename to lib/compat/bswap.h\ndiff --git a/compat/compiler.h b/lib/compat/compiler.h\nsimilarity index 100%\nrename from compat/compiler.h\nrename to lib/compat/compiler.h\ndiff --git a/compat/darwin/procinfo.c b/lib/compat/darwin/procinfo.c\nsimilarity index 100%\nrename from compat/darwin/procinfo.c\nrename to lib/compat/darwin/procinfo.c\ndiff --git a/compat/disk.h b/lib/compat/disk.h\nsimilarity index 100%\nrename from compat/disk.h\nrename to lib/compat/disk.h\ndiff --git a/compat/fileno.c b/lib/compat/fileno.c\nsimilarity index 100%\nrename from compat/fileno.c\nrename to lib/compat/fileno.c\ndiff --git a/compat/fopen.c b/lib/compat/fopen.c\nsimilarity index 100%\nrename from compat/fopen.c\nrename to lib/compat/fopen.c\ndiff --git a/compat/fsmonitor/fsm-darwin-gcc.h b/lib/compat/fsmonitor/fsm-darwin-gcc.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-darwin-gcc.h\nrename to lib/compat/fsmonitor/fsm-darwin-gcc.h\ndiff --git a/compat/fsmonitor/fsm-health-darwin.c b/lib/compat/fsmonitor/fsm-health-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-darwin.c\nrename to lib/compat/fsmonitor/fsm-health-darwin.c\ndiff --git a/compat/fsmonitor/fsm-health-linux.c b/lib/compat/fsmonitor/fsm-health-linux.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-linux.c\nrename to lib/compat/fsmonitor/fsm-health-linux.c\ndiff --git a/compat/fsmonitor/fsm-health-win32.c b/lib/compat/fsmonitor/fsm-health-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-win32.c\nrename to lib/compat/fsmonitor/fsm-health-win32.c\ndiff --git a/compat/fsmonitor/fsm-health.h b/lib/compat/fsmonitor/fsm-health.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health.h\nrename to lib/compat/fsmonitor/fsm-health.h\ndiff --git a/compat/fsmonitor/fsm-ipc-unix.c b/lib/compat/fsmonitor/fsm-ipc-unix.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-ipc-unix.c\nrename to lib/compat/fsmonitor/fsm-ipc-unix.c\ndiff --git a/compat/fsmonitor/fsm-ipc-win32.c b/lib/compat/fsmonitor/fsm-ipc-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-ipc-win32.c\nrename to lib/compat/fsmonitor/fsm-ipc-win32.c\ndiff --git a/compat/fsmonitor/fsm-listen-darwin.c b/lib/compat/fsmonitor/fsm-listen-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-darwin.c\nrename to lib/compat/fsmonitor/fsm-listen-darwin.c\ndiff --git a/compat/fsmonitor/fsm-listen-linux.c b/lib/compat/fsmonitor/fsm-listen-linux.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-linux.c\nrename to lib/compat/fsmonitor/fsm-listen-linux.c\ndiff --git a/compat/fsmonitor/fsm-listen-win32.c b/lib/compat/fsmonitor/fsm-listen-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-win32.c\nrename to lib/compat/fsmonitor/fsm-listen-win32.c\ndiff --git a/compat/fsmonitor/fsm-listen.h b/lib/compat/fsmonitor/fsm-listen.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen.h\nrename to lib/compat/fsmonitor/fsm-listen.h\ndiff --git a/compat/fsmonitor/fsm-path-utils-darwin.c b/lib/compat/fsmonitor/fsm-path-utils-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-darwin.c\nrename to lib/compat/fsmonitor/fsm-path-utils-darwin.c\ndiff --git a/compat/fsmonitor/fsm-path-utils-linux.c b/lib/compat/fsmonitor/fsm-path-utils-linux.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-linux.c\nrename to lib/compat/fsmonitor/fsm-path-utils-linux.c\ndiff --git a/compat/fsmonitor/fsm-path-utils-win32.c b/lib/compat/fsmonitor/fsm-path-utils-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-win32.c\nrename to lib/compat/fsmonitor/fsm-path-utils-win32.c\ndiff --git a/compat/fsmonitor/fsm-settings-unix.c b/lib/compat/fsmonitor/fsm-settings-unix.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-settings-unix.c\nrename to lib/compat/fsmonitor/fsm-settings-unix.c\ndiff --git a/compat/fsmonitor/fsm-settings-win32.c b/lib/compat/fsmonitor/fsm-settings-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-settings-win32.c\nrename to lib/compat/fsmonitor/fsm-settings-win32.c\ndiff --git a/compat/hstrerror.c b/lib/compat/hstrerror.c\nsimilarity index 100%\nrename from compat/hstrerror.c\nrename to lib/compat/hstrerror.c\ndiff --git a/compat/inet_ntop.c b/lib/compat/inet_ntop.c\nsimilarity index 100%\nrename from compat/inet_ntop.c\nrename to lib/compat/inet_ntop.c\ndiff --git a/compat/inet_pton.c b/lib/compat/inet_pton.c\nsimilarity index 100%\nrename from compat/inet_pton.c\nrename to lib/compat/inet_pton.c\ndiff --git a/compat/linux/procinfo.c b/lib/compat/linux/procinfo.c\nsimilarity index 100%\nrename from compat/linux/procinfo.c\nrename to lib/compat/linux/procinfo.c\ndiff --git a/compat/memmem.c b/lib/compat/memmem.c\nsimilarity index 100%\nrename from compat/memmem.c\nrename to lib/compat/memmem.c\ndiff --git a/compat/mingw-posix.h b/lib/compat/mingw-posix.h\nsimilarity index 100%\nrename from compat/mingw-posix.h\nrename to lib/compat/mingw-posix.h\ndiff --git a/compat/mingw.c b/lib/compat/mingw.c\nsimilarity index 100%\nrename from compat/mingw.c\nrename to lib/compat/mingw.c\ndiff --git a/compat/mingw.h b/lib/compat/mingw.h\nsimilarity index 100%\nrename from compat/mingw.h\nrename to lib/compat/mingw.h\ndiff --git a/compat/mkdir.c b/lib/compat/mkdir.c\nsimilarity index 100%\nrename from compat/mkdir.c\nrename to lib/compat/mkdir.c\ndiff --git a/compat/mmap.c b/lib/compat/mmap.c\nsimilarity index 100%\nrename from compat/mmap.c\nrename to lib/compat/mmap.c\ndiff --git a/compat/msvc-posix.h b/lib/compat/msvc-posix.h\nsimilarity index 100%\nrename from compat/msvc-posix.h\nrename to lib/compat/msvc-posix.h\ndiff --git a/compat/msvc.c b/lib/compat/msvc.c\nsimilarity index 100%\nrename from compat/msvc.c\nrename to lib/compat/msvc.c\ndiff --git a/compat/msvc.h b/lib/compat/msvc.h\nsimilarity index 100%\nrename from compat/msvc.h\nrename to lib/compat/msvc.h\ndiff --git a/compat/nonblock.c b/lib/compat/nonblock.c\nsimilarity index 100%\nrename from compat/nonblock.c\nrename to lib/compat/nonblock.c\ndiff --git a/compat/nonblock.h b/lib/compat/nonblock.h\nsimilarity index 100%\nrename from compat/nonblock.h\nrename to lib/compat/nonblock.h\ndiff --git a/compat/obstack.c b/lib/compat/obstack.c\nsimilarity index 100%\nrename from compat/obstack.c\nrename to lib/compat/obstack.c\ndiff --git a/compat/obstack.h b/lib/compat/obstack.h\nsimilarity index 100%\nrename from compat/obstack.h\nrename to lib/compat/obstack.h\ndiff --git a/compat/open.c b/lib/compat/open.c\nsimilarity index 100%\nrename from compat/open.c\nrename to lib/compat/open.c\ndiff --git a/compat/poll/poll.c b/lib/compat/poll/poll.c\nsimilarity index 100%\nrename from compat/poll/poll.c\nrename to lib/compat/poll/poll.c\ndiff --git a/compat/poll/poll.h b/lib/compat/poll/poll.h\nsimilarity index 100%\nrename from compat/poll/poll.h\nrename to lib/compat/poll/poll.h\ndiff --git a/compat/posix.h b/lib/compat/posix.h\nsimilarity index 100%\nrename from compat/posix.h\nrename to lib/compat/posix.h\ndiff --git a/compat/pread.c b/lib/compat/pread.c\nsimilarity index 100%\nrename from compat/pread.c\nrename to lib/compat/pread.c\ndiff --git a/compat/precompose_utf8.c b/lib/compat/precompose_utf8.c\nsimilarity index 100%\nrename from compat/precompose_utf8.c\nrename to lib/compat/precompose_utf8.c\ndiff --git a/compat/precompose_utf8.h b/lib/compat/precompose_utf8.h\nsimilarity index 100%\nrename from compat/precompose_utf8.h\nrename to lib/compat/precompose_utf8.h\ndiff --git a/compat/qsort_s.c b/lib/compat/qsort_s.c\nsimilarity index 100%\nrename from compat/qsort_s.c\nrename to lib/compat/qsort_s.c\ndiff --git a/compat/regcomp_enhanced.c b/lib/compat/regcomp_enhanced.c\nsimilarity index 100%\nrename from compat/regcomp_enhanced.c\nrename to lib/compat/regcomp_enhanced.c\ndiff --git a/compat/regex/regcomp.c b/lib/compat/regex/regcomp.c\nsimilarity index 100%\nrename from compat/regex/regcomp.c\nrename to lib/compat/regex/regcomp.c\ndiff --git a/compat/regex/regex.c b/lib/compat/regex/regex.c\nsimilarity index 100%\nrename from compat/regex/regex.c\nrename to lib/compat/regex/regex.c\ndiff --git a/compat/regex/regex.h b/lib/compat/regex/regex.h\nsimilarity index 100%\nrename from compat/regex/regex.h\nrename to lib/compat/regex/regex.h\ndiff --git a/compat/regex/regex_internal.c b/lib/compat/regex/regex_internal.c\nsimilarity index 100%\nrename from compat/regex/regex_internal.c\nrename to lib/compat/regex/regex_internal.c\ndiff --git a/compat/regex/regex_internal.h b/lib/compat/regex/regex_internal.h\nsimilarity index 100%\nrename from compat/regex/regex_internal.h\nrename to lib/compat/regex/regex_internal.h\ndiff --git a/compat/regex/regexec.c b/lib/compat/regex/regexec.c\nsimilarity index 100%\nrename from compat/regex/regexec.c\nrename to lib/compat/regex/regexec.c\ndiff --git a/compat/setenv.c b/lib/compat/setenv.c\nsimilarity index 100%\nrename from compat/setenv.c\nrename to lib/compat/setenv.c\ndiff --git a/compat/sha1-chunked.c b/lib/compat/sha1-chunked.c\nsimilarity index 100%\nrename from compat/sha1-chunked.c\nrename to lib/compat/sha1-chunked.c\ndiff --git a/compat/sha1-chunked.h b/lib/compat/sha1-chunked.h\nsimilarity index 100%\nrename from compat/sha1-chunked.h\nrename to lib/compat/sha1-chunked.h\ndiff --git a/compat/simple-ipc/ipc-shared.c b/lib/compat/simple-ipc/ipc-shared.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-shared.c\nrename to lib/compat/simple-ipc/ipc-shared.c\ndiff --git a/compat/simple-ipc/ipc-unix-socket.c b/lib/compat/simple-ipc/ipc-unix-socket.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-unix-socket.c\nrename to lib/compat/simple-ipc/ipc-unix-socket.c\ndiff --git a/compat/simple-ipc/ipc-win32.c b/lib/compat/simple-ipc/ipc-win32.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-win32.c\nrename to lib/compat/simple-ipc/ipc-win32.c\ndiff --git a/compat/snprintf.c b/lib/compat/snprintf.c\nsimilarity index 100%\nrename from compat/snprintf.c\nrename to lib/compat/snprintf.c\ndiff --git a/compat/stat.c b/lib/compat/stat.c\nsimilarity index 100%\nrename from compat/stat.c\nrename to lib/compat/stat.c\ndiff --git a/compat/strcasestr.c b/lib/compat/strcasestr.c\nsimilarity index 100%\nrename from compat/strcasestr.c\nrename to lib/compat/strcasestr.c\ndiff --git a/compat/strdup.c b/lib/compat/strdup.c\nsimilarity index 100%\nrename from compat/strdup.c\nrename to lib/compat/strdup.c\ndiff --git a/compat/strlcpy.c b/lib/compat/strlcpy.c\nsimilarity index 100%\nrename from compat/strlcpy.c\nrename to lib/compat/strlcpy.c\ndiff --git a/compat/strtoimax.c b/lib/compat/strtoimax.c\nsimilarity index 100%\nrename from compat/strtoimax.c\nrename to lib/compat/strtoimax.c\ndiff --git a/compat/strtoumax.c b/lib/compat/strtoumax.c\nsimilarity index 100%\nrename from compat/strtoumax.c\nrename to lib/compat/strtoumax.c\ndiff --git a/compat/stub/procinfo.c b/lib/compat/stub/procinfo.c\nsimilarity index 100%\nrename from compat/stub/procinfo.c\nrename to lib/compat/stub/procinfo.c\ndiff --git a/compat/terminal.c b/lib/compat/terminal.c\nsimilarity index 100%\nrename from compat/terminal.c\nrename to lib/compat/terminal.c\ndiff --git a/compat/terminal.h b/lib/compat/terminal.h\nsimilarity index 100%\nrename from compat/terminal.h\nrename to lib/compat/terminal.h\ndiff --git a/compat/unsetenv.c b/lib/compat/unsetenv.c\nsimilarity index 100%\nrename from compat/unsetenv.c\nrename to lib/compat/unsetenv.c\ndiff --git a/compat/vcbuild/.gitignore b/lib/compat/vcbuild/.gitignore\nsimilarity index 100%\nrename from compat/vcbuild/.gitignore\nrename to lib/compat/vcbuild/.gitignore\ndiff --git a/compat/vcbuild/README b/lib/compat/vcbuild/README\nsimilarity index 94%\nrename from compat/vcbuild/README\nrename to lib/compat/vcbuild/README\nindex 29ec1d0f10..63ee00a4ef 100644\n--- a/compat/vcbuild/README\n+++ b/lib/compat/vcbuild/README\n@@ -6,17 +6,17 @@ The Steps to Build Git with VS2015 or VS2017 from the command line.\n    Prompt or from an SDK bash window:\n \n    $ cd <repo_root>\n-   $ ./compat/vcbuild/vcpkg_install.bat\n+   $ ./lib/compat/vcbuild/vcpkg_install.bat\n \n    The vcpkg tools and all of the third-party sources will be installed\n    in this folder:\n-      <repo_root>/compat/vcbuild/vcpkg/\n+      <repo_root>/lib/compat/vcbuild/vcpkg/\n \n    A file will be created with a set of Makefile macros pointing to a\n    unified \"include\", \"lib\", and \"bin\" directory (release and debug) for\n    all of the required packages.  This file will be included by the main\n    Makefile:\n-      <repo_root>/compat/vcbuild/MSVC-DEFS-GEN\n+      <repo_root>/lib/compat/vcbuild/MSVC-DEFS-GEN\n \n 2. OPTIONALLY copy the third-party *.dll and *.pdb files into the repo\n    root to make it easier to run and debug git.exe without having to\n@@ -26,8 +26,8 @@ The Steps to Build Git with VS2015 or VS2017 from the command line.\n    Use ONE of the following forms which should match how you want to\n    compile git.exe.\n \n-   $ ./compat/vcbuild/vcpkg_copy_dlls.bat debug\n-   $ ./compat/vcbuild/vcpkg_copy_dlls.bat release\n+   $ ./lib/compat/vcbuild/vcpkg_copy_dlls.bat debug\n+   $ ./lib/compat/vcbuild/vcpkg_copy_dlls.bat release\n \n 3. Build git using MSVC from an SDK bash window using one of the\n    following commands:\ndiff --git a/compat/vcbuild/find_vs_env.bat b/lib/compat/vcbuild/find_vs_env.bat\nsimilarity index 98%\nrename from compat/vcbuild/find_vs_env.bat\nrename to lib/compat/vcbuild/find_vs_env.bat\nindex b35d264c0e..30e884b3d7 100644\n--- a/compat/vcbuild/find_vs_env.bat\n+++ b/lib/compat/vcbuild/find_vs_env.bat\n@@ -25,7 +25,7 @@ REM\n REM The output of this script should be written to a make \"include\n REM file\" and referenced by the top-level Makefile.\n REM\n-REM See \"config.mak.uname\" (look for compat/vcbuild/MSVC-DEFS-GEN).\n+REM See \"config.mak.uname\" (look for lib/compat/vcbuild/MSVC-DEFS-GEN).\n REM ================================================================\n REM The provided command prompts are custom to each VS release and\n REM filled with lots of internal knowledge (such as Registry settings);\ndiff --git a/compat/vcbuild/include/sys/param.h b/lib/compat/vcbuild/include/sys/param.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/param.h\nrename to lib/compat/vcbuild/include/sys/param.h\ndiff --git a/compat/vcbuild/include/sys/time.h b/lib/compat/vcbuild/include/sys/time.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/time.h\nrename to lib/compat/vcbuild/include/sys/time.h\ndiff --git a/compat/vcbuild/include/sys/utime.h b/lib/compat/vcbuild/include/sys/utime.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/utime.h\nrename to lib/compat/vcbuild/include/sys/utime.h\ndiff --git a/compat/vcbuild/include/unistd.h b/lib/compat/vcbuild/include/unistd.h\nsimilarity index 100%\nrename from compat/vcbuild/include/unistd.h\nrename to lib/compat/vcbuild/include/unistd.h\ndiff --git a/compat/vcbuild/include/utime.h b/lib/compat/vcbuild/include/utime.h\nsimilarity index 100%\nrename from compat/vcbuild/include/utime.h\nrename to lib/compat/vcbuild/include/utime.h\ndiff --git a/compat/vcbuild/scripts/clink.pl b/lib/compat/vcbuild/scripts/clink.pl\nsimilarity index 100%\nrename from compat/vcbuild/scripts/clink.pl\nrename to lib/compat/vcbuild/scripts/clink.pl\ndiff --git a/compat/vcbuild/scripts/lib.pl b/lib/compat/vcbuild/scripts/lib.pl\nsimilarity index 100%\nrename from compat/vcbuild/scripts/lib.pl\nrename to lib/compat/vcbuild/scripts/lib.pl\ndiff --git a/compat/vcbuild/vcpkg_copy_dlls.bat b/lib/compat/vcbuild/vcpkg_copy_dlls.bat\nsimilarity index 100%\nrename from compat/vcbuild/vcpkg_copy_dlls.bat\nrename to lib/compat/vcbuild/vcpkg_copy_dlls.bat\ndiff --git a/compat/vcbuild/vcpkg_install.bat b/lib/compat/vcbuild/vcpkg_install.bat\nsimilarity index 95%\nrename from compat/vcbuild/vcpkg_install.bat\nrename to lib/compat/vcbuild/vcpkg_install.bat\nindex ebd0bad242..64c1b199e0 100644\n--- a/compat/vcbuild/vcpkg_install.bat\n+++ b/lib/compat/vcbuild/vcpkg_install.bat\n@@ -5,10 +5,10 @@ REM it to build the third-party libraries that git requires when it\n REM is built using MSVC.\n REM\n REM [1] Install VCPKG.\n-REM     [a] Create <root>/compat/vcbuild/vcpkg/\n+REM     [a] Create <root>/lib/compat/vcbuild/vcpkg/\n REM     [b] Download \"vcpkg\".\n REM     [c] Compile using the currently installed version of VS.\n-REM     [d] Create <root>/compat/vcbuild/vcpkg/vcpkg.exe\n+REM     [d] Create <root>/lib/compat/vcbuild/vcpkg/vcpkg.exe\n REM\n REM [2] Install third-party libraries.\n REM     [a] Download each (which may also install CMAKE).\ndiff --git a/compat/win32.h b/lib/compat/win32.h\nsimilarity index 100%\nrename from compat/win32.h\nrename to lib/compat/win32.h\ndiff --git a/compat/win32/alloca.h b/lib/compat/win32/alloca.h\nsimilarity index 100%\nrename from compat/win32/alloca.h\nrename to lib/compat/win32/alloca.h\ndiff --git a/compat/win32/dirent.c b/lib/compat/win32/dirent.c\nsimilarity index 100%\nrename from compat/win32/dirent.c\nrename to lib/compat/win32/dirent.c\ndiff --git a/compat/win32/dirent.h b/lib/compat/win32/dirent.h\nsimilarity index 100%\nrename from compat/win32/dirent.h\nrename to lib/compat/win32/dirent.h\ndiff --git a/compat/win32/exit-process.h b/lib/compat/win32/exit-process.h\nsimilarity index 100%\nrename from compat/win32/exit-process.h\nrename to lib/compat/win32/exit-process.h\ndiff --git a/compat/win32/flush.c b/lib/compat/win32/flush.c\nsimilarity index 100%\nrename from compat/win32/flush.c\nrename to lib/compat/win32/flush.c\ndiff --git a/compat/win32/git.manifest b/lib/compat/win32/git.manifest\nsimilarity index 100%\nrename from compat/win32/git.manifest\nrename to lib/compat/win32/git.manifest\ndiff --git a/compat/win32/headless.c b/lib/compat/win32/headless.c\nsimilarity index 100%\nrename from compat/win32/headless.c\nrename to lib/compat/win32/headless.c\ndiff --git a/compat/win32/lazyload.h b/lib/compat/win32/lazyload.h\nsimilarity index 100%\nrename from compat/win32/lazyload.h\nrename to lib/compat/win32/lazyload.h\ndiff --git a/compat/win32/path-utils.c b/lib/compat/win32/path-utils.c\nsimilarity index 100%\nrename from compat/win32/path-utils.c\nrename to lib/compat/win32/path-utils.c\ndiff --git a/compat/win32/path-utils.h b/lib/compat/win32/path-utils.h\nsimilarity index 100%\nrename from compat/win32/path-utils.h\nrename to lib/compat/win32/path-utils.h\ndiff --git a/compat/win32/pthread.c b/lib/compat/win32/pthread.c\nsimilarity index 100%\nrename from compat/win32/pthread.c\nrename to lib/compat/win32/pthread.c\ndiff --git a/compat/win32/pthread.h b/lib/compat/win32/pthread.h\nsimilarity index 100%\nrename from compat/win32/pthread.h\nrename to lib/compat/win32/pthread.h\ndiff --git a/compat/win32/syslog.c b/lib/compat/win32/syslog.c\nsimilarity index 100%\nrename from compat/win32/syslog.c\nrename to lib/compat/win32/syslog.c\ndiff --git a/compat/win32/syslog.h b/lib/compat/win32/syslog.h\nsimilarity index 100%\nrename from compat/win32/syslog.h\nrename to lib/compat/win32/syslog.h\ndiff --git a/compat/win32/trace2_win32_process_info.c b/lib/compat/win32/trace2_win32_process_info.c\nsimilarity index 100%\nrename from compat/win32/trace2_win32_process_info.c\nrename to lib/compat/win32/trace2_win32_process_info.c\ndiff --git a/compat/win32mmap.c b/lib/compat/win32mmap.c\nsimilarity index 100%\nrename from compat/win32mmap.c\nrename to lib/compat/win32mmap.c\ndiff --git a/compat/winansi.c b/lib/compat/winansi.c\nsimilarity index 100%\nrename from compat/winansi.c\nrename to lib/compat/winansi.c\ndiff --git a/compat/zlib-compat.h b/lib/compat/zlib-compat.h\nsimilarity index 100%\nrename from compat/zlib-compat.h\nrename to lib/compat/zlib-compat.h\ndiff --git a/compiler-tricks/not-constant.c b/lib/compiler-tricks/not-constant.c\nsimilarity index 100%\nrename from compiler-tricks/not-constant.c\nrename to lib/compiler-tricks/not-constant.c\ndiff --git a/config.c b/lib/config.c\nsimilarity index 100%\nrename from config.c\nrename to lib/config.c\ndiff --git a/config.h b/lib/config.h\nsimilarity index 100%\nrename from config.h\nrename to lib/config.h\ndiff --git a/connect.c b/lib/connect.c\nsimilarity index 100%\nrename from connect.c\nrename to lib/connect.c\ndiff --git a/connect.h b/lib/connect.h\nsimilarity index 100%\nrename from connect.h\nrename to lib/connect.h\ndiff --git a/connected.c b/lib/connected.c\nsimilarity index 100%\nrename from connected.c\nrename to lib/connected.c\ndiff --git a/connected.h b/lib/connected.h\nsimilarity index 100%\nrename from connected.h\nrename to lib/connected.h\ndiff --git a/convert.c b/lib/convert.c\nsimilarity index 100%\nrename from convert.c\nrename to lib/convert.c\ndiff --git a/convert.h b/lib/convert.h\nsimilarity index 100%\nrename from convert.h\nrename to lib/convert.h\ndiff --git a/copy.c b/lib/copy.c\nsimilarity index 100%\nrename from copy.c\nrename to lib/copy.c\ndiff --git a/copy.h b/lib/copy.h\nsimilarity index 100%\nrename from copy.h\nrename to lib/copy.h\ndiff --git a/credential.c b/lib/credential.c\nsimilarity index 100%\nrename from credential.c\nrename to lib/credential.c\ndiff --git a/credential.h b/lib/credential.h\nsimilarity index 100%\nrename from credential.h\nrename to lib/credential.h\ndiff --git a/csum-file.c b/lib/csum-file.c\nsimilarity index 100%\nrename from csum-file.c\nrename to lib/csum-file.c\ndiff --git a/csum-file.h b/lib/csum-file.h\nsimilarity index 100%\nrename from csum-file.h\nrename to lib/csum-file.h\ndiff --git a/ctype.c b/lib/ctype.c\nsimilarity index 100%\nrename from ctype.c\nrename to lib/ctype.c\ndiff --git a/date.c b/lib/date.c\nsimilarity index 100%\nrename from date.c\nrename to lib/date.c\ndiff --git a/date.h b/lib/date.h\nsimilarity index 100%\nrename from date.h\nrename to lib/date.h\ndiff --git a/decorate.c b/lib/decorate.c\nsimilarity index 100%\nrename from decorate.c\nrename to lib/decorate.c\ndiff --git a/decorate.h b/lib/decorate.h\nsimilarity index 100%\nrename from decorate.h\nrename to lib/decorate.h\ndiff --git a/delta-islands.c b/lib/delta-islands.c\nsimilarity index 100%\nrename from delta-islands.c\nrename to lib/delta-islands.c\ndiff --git a/delta-islands.h b/lib/delta-islands.h\nsimilarity index 100%\nrename from delta-islands.h\nrename to lib/delta-islands.h\ndiff --git a/delta.h b/lib/delta.h\nsimilarity index 100%\nrename from delta.h\nrename to lib/delta.h\ndiff --git a/diagnose.c b/lib/diagnose.c\nsimilarity index 100%\nrename from diagnose.c\nrename to lib/diagnose.c\ndiff --git a/diagnose.h b/lib/diagnose.h\nsimilarity index 100%\nrename from diagnose.h\nrename to lib/diagnose.h\ndiff --git a/diff-delta.c b/lib/diff-delta.c\nsimilarity index 100%\nrename from diff-delta.c\nrename to lib/diff-delta.c\ndiff --git a/diff-lib.c b/lib/diff-lib.c\nsimilarity index 100%\nrename from diff-lib.c\nrename to lib/diff-lib.c\ndiff --git a/diff-merges.c b/lib/diff-merges.c\nsimilarity index 100%\nrename from diff-merges.c\nrename to lib/diff-merges.c\ndiff --git a/diff-merges.h b/lib/diff-merges.h\nsimilarity index 100%\nrename from diff-merges.h\nrename to lib/diff-merges.h\ndiff --git a/diff-no-index.c b/lib/diff-no-index.c\nsimilarity index 100%\nrename from diff-no-index.c\nrename to lib/diff-no-index.c\ndiff --git a/diff.c b/lib/diff.c\nsimilarity index 100%\nrename from diff.c\nrename to lib/diff.c\ndiff --git a/diff.h b/lib/diff.h\nsimilarity index 100%\nrename from diff.h\nrename to lib/diff.h\ndiff --git a/diffcore-break.c b/lib/diffcore-break.c\nsimilarity index 100%\nrename from diffcore-break.c\nrename to lib/diffcore-break.c\ndiff --git a/diffcore-delta.c b/lib/diffcore-delta.c\nsimilarity index 100%\nrename from diffcore-delta.c\nrename to lib/diffcore-delta.c\ndiff --git a/diffcore-order.c b/lib/diffcore-order.c\nsimilarity index 100%\nrename from diffcore-order.c\nrename to lib/diffcore-order.c\ndiff --git a/diffcore-pickaxe.c b/lib/diffcore-pickaxe.c\nsimilarity index 100%\nrename from diffcore-pickaxe.c\nrename to lib/diffcore-pickaxe.c\ndiff --git a/diffcore-rename.c b/lib/diffcore-rename.c\nsimilarity index 100%\nrename from diffcore-rename.c\nrename to lib/diffcore-rename.c\ndiff --git a/diffcore-rotate.c b/lib/diffcore-rotate.c\nsimilarity index 100%\nrename from diffcore-rotate.c\nrename to lib/diffcore-rotate.c\ndiff --git a/diffcore.h b/lib/diffcore.h\nsimilarity index 100%\nrename from diffcore.h\nrename to lib/diffcore.h\ndiff --git a/dir-iterator.c b/lib/dir-iterator.c\nsimilarity index 100%\nrename from dir-iterator.c\nrename to lib/dir-iterator.c\ndiff --git a/dir-iterator.h b/lib/dir-iterator.h\nsimilarity index 100%\nrename from dir-iterator.h\nrename to lib/dir-iterator.h\ndiff --git a/dir.c b/lib/dir.c\nsimilarity index 100%\nrename from dir.c\nrename to lib/dir.c\ndiff --git a/dir.h b/lib/dir.h\nsimilarity index 100%\nrename from dir.h\nrename to lib/dir.h\ndiff --git a/editor.c b/lib/editor.c\nsimilarity index 100%\nrename from editor.c\nrename to lib/editor.c\ndiff --git a/editor.h b/lib/editor.h\nsimilarity index 100%\nrename from editor.h\nrename to lib/editor.h\ndiff --git a/entry.c b/lib/entry.c\nsimilarity index 100%\nrename from entry.c\nrename to lib/entry.c\ndiff --git a/entry.h b/lib/entry.h\nsimilarity index 100%\nrename from entry.h\nrename to lib/entry.h\ndiff --git a/environment.c b/lib/environment.c\nsimilarity index 100%\nrename from environment.c\nrename to lib/environment.c\ndiff --git a/environment.h b/lib/environment.h\nsimilarity index 100%\nrename from environment.h\nrename to lib/environment.h\ndiff --git a/ewah/bitmap.c b/lib/ewah/bitmap.c\nsimilarity index 100%\nrename from ewah/bitmap.c\nrename to lib/ewah/bitmap.c\ndiff --git a/ewah/ewah_bitmap.c b/lib/ewah/ewah_bitmap.c\nsimilarity index 100%\nrename from ewah/ewah_bitmap.c\nrename to lib/ewah/ewah_bitmap.c\ndiff --git a/ewah/ewah_io.c b/lib/ewah/ewah_io.c\nsimilarity index 100%\nrename from ewah/ewah_io.c\nrename to lib/ewah/ewah_io.c\ndiff --git a/ewah/ewah_rlw.c b/lib/ewah/ewah_rlw.c\nsimilarity index 100%\nrename from ewah/ewah_rlw.c\nrename to lib/ewah/ewah_rlw.c\ndiff --git a/ewah/ewok.h b/lib/ewah/ewok.h\nsimilarity index 100%\nrename from ewah/ewok.h\nrename to lib/ewah/ewok.h\ndiff --git a/ewah/ewok_rlw.h b/lib/ewah/ewok_rlw.h\nsimilarity index 100%\nrename from ewah/ewok_rlw.h\nrename to lib/ewah/ewok_rlw.h\ndiff --git a/exec-cmd.c b/lib/exec-cmd.c\nsimilarity index 100%\nrename from exec-cmd.c\nrename to lib/exec-cmd.c\ndiff --git a/exec-cmd.h b/lib/exec-cmd.h\nsimilarity index 100%\nrename from exec-cmd.h\nrename to lib/exec-cmd.h\ndiff --git a/fetch-negotiator.c b/lib/fetch-negotiator.c\nsimilarity index 100%\nrename from fetch-negotiator.c\nrename to lib/fetch-negotiator.c\ndiff --git a/fetch-negotiator.h b/lib/fetch-negotiator.h\nsimilarity index 100%\nrename from fetch-negotiator.h\nrename to lib/fetch-negotiator.h\ndiff --git a/fetch-pack.c b/lib/fetch-pack.c\nsimilarity index 100%\nrename from fetch-pack.c\nrename to lib/fetch-pack.c\ndiff --git a/fetch-pack.h b/lib/fetch-pack.h\nsimilarity index 100%\nrename from fetch-pack.h\nrename to lib/fetch-pack.h\ndiff --git a/fmt-merge-msg.c b/lib/fmt-merge-msg.c\nsimilarity index 100%\nrename from fmt-merge-msg.c\nrename to lib/fmt-merge-msg.c\ndiff --git a/fmt-merge-msg.h b/lib/fmt-merge-msg.h\nsimilarity index 100%\nrename from fmt-merge-msg.h\nrename to lib/fmt-merge-msg.h\ndiff --git a/for-each-ref.h b/lib/for-each-ref.h\nsimilarity index 100%\nrename from for-each-ref.h\nrename to lib/for-each-ref.h\ndiff --git a/fsck.c b/lib/fsck.c\nsimilarity index 100%\nrename from fsck.c\nrename to lib/fsck.c\ndiff --git a/fsck.h b/lib/fsck.h\nsimilarity index 100%\nrename from fsck.h\nrename to lib/fsck.h\ndiff --git a/fsmonitor--daemon.h b/lib/fsmonitor--daemon.h\nsimilarity index 100%\nrename from fsmonitor--daemon.h\nrename to lib/fsmonitor--daemon.h\ndiff --git a/fsmonitor-ipc.c b/lib/fsmonitor-ipc.c\nsimilarity index 100%\nrename from fsmonitor-ipc.c\nrename to lib/fsmonitor-ipc.c\ndiff --git a/fsmonitor-ipc.h b/lib/fsmonitor-ipc.h\nsimilarity index 100%\nrename from fsmonitor-ipc.h\nrename to lib/fsmonitor-ipc.h\ndiff --git a/fsmonitor-ll.h b/lib/fsmonitor-ll.h\nsimilarity index 100%\nrename from fsmonitor-ll.h\nrename to lib/fsmonitor-ll.h\ndiff --git a/fsmonitor-path-utils.h b/lib/fsmonitor-path-utils.h\nsimilarity index 100%\nrename from fsmonitor-path-utils.h\nrename to lib/fsmonitor-path-utils.h\ndiff --git a/fsmonitor-settings.c b/lib/fsmonitor-settings.c\nsimilarity index 100%\nrename from fsmonitor-settings.c\nrename to lib/fsmonitor-settings.c\ndiff --git a/fsmonitor-settings.h b/lib/fsmonitor-settings.h\nsimilarity index 100%\nrename from fsmonitor-settings.h\nrename to lib/fsmonitor-settings.h\ndiff --git a/fsmonitor.c b/lib/fsmonitor.c\nsimilarity index 100%\nrename from fsmonitor.c\nrename to lib/fsmonitor.c\ndiff --git a/fsmonitor.h b/lib/fsmonitor.h\nsimilarity index 100%\nrename from fsmonitor.h\nrename to lib/fsmonitor.h\ndiff --git a/gettext.c b/lib/gettext.c\nsimilarity index 100%\nrename from gettext.c\nrename to lib/gettext.c\ndiff --git a/gettext.h b/lib/gettext.h\nsimilarity index 100%\nrename from gettext.h\nrename to lib/gettext.h\ndiff --git a/git-compat-util.h b/lib/git-compat-util.h\nsimilarity index 100%\nrename from git-compat-util.h\nrename to lib/git-compat-util.h\ndiff --git a/git-curl-compat.h b/lib/git-curl-compat.h\nsimilarity index 100%\nrename from git-curl-compat.h\nrename to lib/git-curl-compat.h\ndiff --git a/git-zlib.c b/lib/git-zlib.c\nsimilarity index 100%\nrename from git-zlib.c\nrename to lib/git-zlib.c\ndiff --git a/git-zlib.h b/lib/git-zlib.h\nsimilarity index 100%\nrename from git-zlib.h\nrename to lib/git-zlib.h\ndiff --git a/gpg-interface.c b/lib/gpg-interface.c\nsimilarity index 100%\nrename from gpg-interface.c\nrename to lib/gpg-interface.c\ndiff --git a/gpg-interface.h b/lib/gpg-interface.h\nsimilarity index 100%\nrename from gpg-interface.h\nrename to lib/gpg-interface.h\ndiff --git a/graph.c b/lib/graph.c\nsimilarity index 100%\nrename from graph.c\nrename to lib/graph.c\ndiff --git a/graph.h b/lib/graph.h\nsimilarity index 100%\nrename from graph.h\nrename to lib/graph.h\ndiff --git a/grep.c b/lib/grep.c\nsimilarity index 100%\nrename from grep.c\nrename to lib/grep.c\ndiff --git a/grep.h b/lib/grep.h\nsimilarity index 100%\nrename from grep.h\nrename to lib/grep.h\ndiff --git a/hash-lookup.c b/lib/hash-lookup.c\nsimilarity index 100%\nrename from hash-lookup.c\nrename to lib/hash-lookup.c\ndiff --git a/hash-lookup.h b/lib/hash-lookup.h\nsimilarity index 100%\nrename from hash-lookup.h\nrename to lib/hash-lookup.h\ndiff --git a/hash.c b/lib/hash.c\nsimilarity index 100%\nrename from hash.c\nrename to lib/hash.c\ndiff --git a/hash.h b/lib/hash.h\nsimilarity index 100%\nrename from hash.h\nrename to lib/hash.h\ndiff --git a/hashmap.c b/lib/hashmap.c\nsimilarity index 100%\nrename from hashmap.c\nrename to lib/hashmap.c\ndiff --git a/hashmap.h b/lib/hashmap.h\nsimilarity index 100%\nrename from hashmap.h\nrename to lib/hashmap.h\ndiff --git a/help.c b/lib/help.c\nsimilarity index 100%\nrename from help.c\nrename to lib/help.c\ndiff --git a/help.h b/lib/help.h\nsimilarity index 100%\nrename from help.h\nrename to lib/help.h\ndiff --git a/hex-ll.c b/lib/hex-ll.c\nsimilarity index 100%\nrename from hex-ll.c\nrename to lib/hex-ll.c\ndiff --git a/hex-ll.h b/lib/hex-ll.h\nsimilarity index 100%\nrename from hex-ll.h\nrename to lib/hex-ll.h\ndiff --git a/hex.c b/lib/hex.c\nsimilarity index 100%\nrename from hex.c\nrename to lib/hex.c\ndiff --git a/hex.h b/lib/hex.h\nsimilarity index 100%\nrename from hex.h\nrename to lib/hex.h\ndiff --git a/hook.c b/lib/hook.c\nsimilarity index 100%\nrename from hook.c\nrename to lib/hook.c\ndiff --git a/hook.h b/lib/hook.h\nsimilarity index 100%\nrename from hook.h\nrename to lib/hook.h\ndiff --git a/http-walker.c b/lib/http-walker.c\nsimilarity index 100%\nrename from http-walker.c\nrename to lib/http-walker.c\ndiff --git a/http.c b/lib/http.c\nsimilarity index 100%\nrename from http.c\nrename to lib/http.c\ndiff --git a/http.h b/lib/http.h\nsimilarity index 100%\nrename from http.h\nrename to lib/http.h\ndiff --git a/ident.c b/lib/ident.c\nsimilarity index 100%\nrename from ident.c\nrename to lib/ident.c\ndiff --git a/ident.h b/lib/ident.h\nsimilarity index 100%\nrename from ident.h\nrename to lib/ident.h\ndiff --git a/iterator.h b/lib/iterator.h\nsimilarity index 100%\nrename from iterator.h\nrename to lib/iterator.h\ndiff --git a/json-writer.c b/lib/json-writer.c\nsimilarity index 100%\nrename from json-writer.c\nrename to lib/json-writer.c\ndiff --git a/json-writer.h b/lib/json-writer.h\nsimilarity index 100%\nrename from json-writer.h\nrename to lib/json-writer.h\ndiff --git a/khash.h b/lib/khash.h\nsimilarity index 100%\nrename from khash.h\nrename to lib/khash.h\ndiff --git a/kwset.c b/lib/kwset.c\nsimilarity index 100%\nrename from kwset.c\nrename to lib/kwset.c\ndiff --git a/kwset.h b/lib/kwset.h\nsimilarity index 100%\nrename from kwset.h\nrename to lib/kwset.h\ndiff --git a/levenshtein.c b/lib/levenshtein.c\nsimilarity index 100%\nrename from levenshtein.c\nrename to lib/levenshtein.c\ndiff --git a/levenshtein.h b/lib/levenshtein.h\nsimilarity index 100%\nrename from levenshtein.h\nrename to lib/levenshtein.h\ndiff --git a/line-log.c b/lib/line-log.c\nsimilarity index 100%\nrename from line-log.c\nrename to lib/line-log.c\ndiff --git a/line-log.h b/lib/line-log.h\nsimilarity index 100%\nrename from line-log.h\nrename to lib/line-log.h\ndiff --git a/line-range.c b/lib/line-range.c\nsimilarity index 100%\nrename from line-range.c\nrename to lib/line-range.c\ndiff --git a/line-range.h b/lib/line-range.h\nsimilarity index 100%\nrename from line-range.h\nrename to lib/line-range.h\ndiff --git a/linear-assignment.c b/lib/linear-assignment.c\nsimilarity index 100%\nrename from linear-assignment.c\nrename to lib/linear-assignment.c\ndiff --git a/linear-assignment.h b/lib/linear-assignment.h\nsimilarity index 100%\nrename from linear-assignment.h\nrename to lib/linear-assignment.h\ndiff --git a/list-objects-filter-options.c b/lib/list-objects-filter-options.c\nsimilarity index 100%\nrename from list-objects-filter-options.c\nrename to lib/list-objects-filter-options.c\ndiff --git a/list-objects-filter-options.h b/lib/list-objects-filter-options.h\nsimilarity index 100%\nrename from list-objects-filter-options.h\nrename to lib/list-objects-filter-options.h\ndiff --git a/list-objects-filter.c b/lib/list-objects-filter.c\nsimilarity index 100%\nrename from list-objects-filter.c\nrename to lib/list-objects-filter.c\ndiff --git a/list-objects-filter.h b/lib/list-objects-filter.h\nsimilarity index 100%\nrename from list-objects-filter.h\nrename to lib/list-objects-filter.h\ndiff --git a/list-objects.c b/lib/list-objects.c\nsimilarity index 100%\nrename from list-objects.c\nrename to lib/list-objects.c\ndiff --git a/list-objects.h b/lib/list-objects.h\nsimilarity index 100%\nrename from list-objects.h\nrename to lib/list-objects.h\ndiff --git a/list.h b/lib/list.h\nsimilarity index 100%\nrename from list.h\nrename to lib/list.h\ndiff --git a/lockfile.c b/lib/lockfile.c\nsimilarity index 100%\nrename from lockfile.c\nrename to lib/lockfile.c\ndiff --git a/lockfile.h b/lib/lockfile.h\nsimilarity index 100%\nrename from lockfile.h\nrename to lib/lockfile.h\ndiff --git a/log-tree.c b/lib/log-tree.c\nsimilarity index 100%\nrename from log-tree.c\nrename to lib/log-tree.c\ndiff --git a/log-tree.h b/lib/log-tree.h\nsimilarity index 100%\nrename from log-tree.h\nrename to lib/log-tree.h\ndiff --git a/loose.c b/lib/loose.c\nsimilarity index 100%\nrename from loose.c\nrename to lib/loose.c\ndiff --git a/loose.h b/lib/loose.h\nsimilarity index 100%\nrename from loose.h\nrename to lib/loose.h\ndiff --git a/ls-refs.c b/lib/ls-refs.c\nsimilarity index 100%\nrename from ls-refs.c\nrename to lib/ls-refs.c\ndiff --git a/ls-refs.h b/lib/ls-refs.h\nsimilarity index 100%\nrename from ls-refs.h\nrename to lib/ls-refs.h\ndiff --git a/mailinfo.c b/lib/mailinfo.c\nsimilarity index 100%\nrename from mailinfo.c\nrename to lib/mailinfo.c\ndiff --git a/mailinfo.h b/lib/mailinfo.h\nsimilarity index 100%\nrename from mailinfo.h\nrename to lib/mailinfo.h\ndiff --git a/mailmap.c b/lib/mailmap.c\nsimilarity index 100%\nrename from mailmap.c\nrename to lib/mailmap.c\ndiff --git a/mailmap.h b/lib/mailmap.h\nsimilarity index 100%\nrename from mailmap.h\nrename to lib/mailmap.h\ndiff --git a/match-trees.c b/lib/match-trees.c\nsimilarity index 100%\nrename from match-trees.c\nrename to lib/match-trees.c\ndiff --git a/match-trees.h b/lib/match-trees.h\nsimilarity index 100%\nrename from match-trees.h\nrename to lib/match-trees.h\ndiff --git a/mem-pool.c b/lib/mem-pool.c\nsimilarity index 100%\nrename from mem-pool.c\nrename to lib/mem-pool.c\ndiff --git a/mem-pool.h b/lib/mem-pool.h\nsimilarity index 100%\nrename from mem-pool.h\nrename to lib/mem-pool.h\ndiff --git a/merge-blobs.c b/lib/merge-blobs.c\nsimilarity index 100%\nrename from merge-blobs.c\nrename to lib/merge-blobs.c\ndiff --git a/merge-blobs.h b/lib/merge-blobs.h\nsimilarity index 100%\nrename from merge-blobs.h\nrename to lib/merge-blobs.h\ndiff --git a/merge-ll.c b/lib/merge-ll.c\nsimilarity index 100%\nrename from merge-ll.c\nrename to lib/merge-ll.c\ndiff --git a/merge-ll.h b/lib/merge-ll.h\nsimilarity index 100%\nrename from merge-ll.h\nrename to lib/merge-ll.h\ndiff --git a/merge-ort-wrappers.c b/lib/merge-ort-wrappers.c\nsimilarity index 100%\nrename from merge-ort-wrappers.c\nrename to lib/merge-ort-wrappers.c\ndiff --git a/merge-ort-wrappers.h b/lib/merge-ort-wrappers.h\nsimilarity index 100%\nrename from merge-ort-wrappers.h\nrename to lib/merge-ort-wrappers.h\ndiff --git a/merge-ort.c b/lib/merge-ort.c\nsimilarity index 100%\nrename from merge-ort.c\nrename to lib/merge-ort.c\ndiff --git a/merge-ort.h b/lib/merge-ort.h\nsimilarity index 100%\nrename from merge-ort.h\nrename to lib/merge-ort.h\ndiff --git a/merge.c b/lib/merge.c\nsimilarity index 100%\nrename from merge.c\nrename to lib/merge.c\ndiff --git a/merge.h b/lib/merge.h\nsimilarity index 100%\nrename from merge.h\nrename to lib/merge.h\ndiff --git a/mergesort.h b/lib/mergesort.h\nsimilarity index 100%\nrename from mergesort.h\nrename to lib/mergesort.h\ndiff --git a/midx-write.c b/lib/midx-write.c\nsimilarity index 100%\nrename from midx-write.c\nrename to lib/midx-write.c\ndiff --git a/midx.c b/lib/midx.c\nsimilarity index 100%\nrename from midx.c\nrename to lib/midx.c\ndiff --git a/midx.h b/lib/midx.h\nsimilarity index 100%\nrename from midx.h\nrename to lib/midx.h\ndiff --git a/name-hash.c b/lib/name-hash.c\nsimilarity index 100%\nrename from name-hash.c\nrename to lib/name-hash.c\ndiff --git a/name-hash.h b/lib/name-hash.h\nsimilarity index 100%\nrename from name-hash.h\nrename to lib/name-hash.h\ndiff --git a/negotiator/default.c b/lib/negotiator/default.c\nsimilarity index 100%\nrename from negotiator/default.c\nrename to lib/negotiator/default.c\ndiff --git a/negotiator/default.h b/lib/negotiator/default.h\nsimilarity index 100%\nrename from negotiator/default.h\nrename to lib/negotiator/default.h\ndiff --git a/negotiator/noop.c b/lib/negotiator/noop.c\nsimilarity index 100%\nrename from negotiator/noop.c\nrename to lib/negotiator/noop.c\ndiff --git a/negotiator/noop.h b/lib/negotiator/noop.h\nsimilarity index 100%\nrename from negotiator/noop.h\nrename to lib/negotiator/noop.h\ndiff --git a/negotiator/skipping.c b/lib/negotiator/skipping.c\nsimilarity index 100%\nrename from negotiator/skipping.c\nrename to lib/negotiator/skipping.c\ndiff --git a/negotiator/skipping.h b/lib/negotiator/skipping.h\nsimilarity index 100%\nrename from negotiator/skipping.h\nrename to lib/negotiator/skipping.h\ndiff --git a/notes-cache.c b/lib/notes-cache.c\nsimilarity index 100%\nrename from notes-cache.c\nrename to lib/notes-cache.c\ndiff --git a/notes-cache.h b/lib/notes-cache.h\nsimilarity index 100%\nrename from notes-cache.h\nrename to lib/notes-cache.h\ndiff --git a/notes-merge.c b/lib/notes-merge.c\nsimilarity index 100%\nrename from notes-merge.c\nrename to lib/notes-merge.c\ndiff --git a/notes-merge.h b/lib/notes-merge.h\nsimilarity index 100%\nrename from notes-merge.h\nrename to lib/notes-merge.h\ndiff --git a/notes-utils.c b/lib/notes-utils.c\nsimilarity index 100%\nrename from notes-utils.c\nrename to lib/notes-utils.c\ndiff --git a/notes-utils.h b/lib/notes-utils.h\nsimilarity index 100%\nrename from notes-utils.h\nrename to lib/notes-utils.h\ndiff --git a/notes.c b/lib/notes.c\nsimilarity index 100%\nrename from notes.c\nrename to lib/notes.c\ndiff --git a/notes.h b/lib/notes.h\nsimilarity index 100%\nrename from notes.h\nrename to lib/notes.h\ndiff --git a/object-file-convert.c b/lib/object-file-convert.c\nsimilarity index 100%\nrename from object-file-convert.c\nrename to lib/object-file-convert.c\ndiff --git a/object-file-convert.h b/lib/object-file-convert.h\nsimilarity index 100%\nrename from object-file-convert.h\nrename to lib/object-file-convert.h\ndiff --git a/object-file.c b/lib/object-file.c\nsimilarity index 100%\nrename from object-file.c\nrename to lib/object-file.c\ndiff --git a/object-file.h b/lib/object-file.h\nsimilarity index 100%\nrename from object-file.h\nrename to lib/object-file.h\ndiff --git a/object-name.c b/lib/object-name.c\nsimilarity index 100%\nrename from object-name.c\nrename to lib/object-name.c\ndiff --git a/object-name.h b/lib/object-name.h\nsimilarity index 100%\nrename from object-name.h\nrename to lib/object-name.h\ndiff --git a/object.c b/lib/object.c\nsimilarity index 100%\nrename from object.c\nrename to lib/object.c\ndiff --git a/object.h b/lib/object.h\nsimilarity index 100%\nrename from object.h\nrename to lib/object.h\ndiff --git a/odb.c b/lib/odb.c\nsimilarity index 100%\nrename from odb.c\nrename to lib/odb.c\ndiff --git a/odb.h b/lib/odb.h\nsimilarity index 100%\nrename from odb.h\nrename to lib/odb.h\ndiff --git a/odb/source-files.c b/lib/odb/source-files.c\nsimilarity index 100%\nrename from odb/source-files.c\nrename to lib/odb/source-files.c\ndiff --git a/odb/source-files.h b/lib/odb/source-files.h\nsimilarity index 100%\nrename from odb/source-files.h\nrename to lib/odb/source-files.h\ndiff --git a/odb/source-inmemory.c b/lib/odb/source-inmemory.c\nsimilarity index 100%\nrename from odb/source-inmemory.c\nrename to lib/odb/source-inmemory.c\ndiff --git a/odb/source-inmemory.h b/lib/odb/source-inmemory.h\nsimilarity index 100%\nrename from odb/source-inmemory.h\nrename to lib/odb/source-inmemory.h\ndiff --git a/odb/source-loose.c b/lib/odb/source-loose.c\nsimilarity index 100%\nrename from odb/source-loose.c\nrename to lib/odb/source-loose.c\ndiff --git a/odb/source-loose.h b/lib/odb/source-loose.h\nsimilarity index 100%\nrename from odb/source-loose.h\nrename to lib/odb/source-loose.h\ndiff --git a/odb/source-packed.c b/lib/odb/source-packed.c\nsimilarity index 100%\nrename from odb/source-packed.c\nrename to lib/odb/source-packed.c\ndiff --git a/odb/source-packed.h b/lib/odb/source-packed.h\nsimilarity index 100%\nrename from odb/source-packed.h\nrename to lib/odb/source-packed.h\ndiff --git a/odb/source.c b/lib/odb/source.c\nsimilarity index 100%\nrename from odb/source.c\nrename to lib/odb/source.c\ndiff --git a/odb/source.h b/lib/odb/source.h\nsimilarity index 100%\nrename from odb/source.h\nrename to lib/odb/source.h\ndiff --git a/odb/streaming.c b/lib/odb/streaming.c\nsimilarity index 100%\nrename from odb/streaming.c\nrename to lib/odb/streaming.c\ndiff --git a/odb/streaming.h b/lib/odb/streaming.h\nsimilarity index 100%\nrename from odb/streaming.h\nrename to lib/odb/streaming.h\ndiff --git a/odb/transaction.c b/lib/odb/transaction.c\nsimilarity index 100%\nrename from odb/transaction.c\nrename to lib/odb/transaction.c\ndiff --git a/odb/transaction.h b/lib/odb/transaction.h\nsimilarity index 100%\nrename from odb/transaction.h\nrename to lib/odb/transaction.h\ndiff --git a/oid-array.c b/lib/oid-array.c\nsimilarity index 100%\nrename from oid-array.c\nrename to lib/oid-array.c\ndiff --git a/oid-array.h b/lib/oid-array.h\nsimilarity index 100%\nrename from oid-array.h\nrename to lib/oid-array.h\ndiff --git a/oidmap.c b/lib/oidmap.c\nsimilarity index 100%\nrename from oidmap.c\nrename to lib/oidmap.c\ndiff --git a/oidmap.h b/lib/oidmap.h\nsimilarity index 100%\nrename from oidmap.h\nrename to lib/oidmap.h\ndiff --git a/oidset.c b/lib/oidset.c\nsimilarity index 100%\nrename from oidset.c\nrename to lib/oidset.c\ndiff --git a/oidset.h b/lib/oidset.h\nsimilarity index 100%\nrename from oidset.h\nrename to lib/oidset.h\ndiff --git a/oidtree.c b/lib/oidtree.c\nsimilarity index 100%\nrename from oidtree.c\nrename to lib/oidtree.c\ndiff --git a/oidtree.h b/lib/oidtree.h\nsimilarity index 100%\nrename from oidtree.h\nrename to lib/oidtree.h\ndiff --git a/pack-bitmap-write.c b/lib/pack-bitmap-write.c\nsimilarity index 100%\nrename from pack-bitmap-write.c\nrename to lib/pack-bitmap-write.c\ndiff --git a/pack-bitmap.c b/lib/pack-bitmap.c\nsimilarity index 100%\nrename from pack-bitmap.c\nrename to lib/pack-bitmap.c\ndiff --git a/pack-bitmap.h b/lib/pack-bitmap.h\nsimilarity index 100%\nrename from pack-bitmap.h\nrename to lib/pack-bitmap.h\ndiff --git a/pack-check.c b/lib/pack-check.c\nsimilarity index 100%\nrename from pack-check.c\nrename to lib/pack-check.c\ndiff --git a/pack-mtimes.c b/lib/pack-mtimes.c\nsimilarity index 100%\nrename from pack-mtimes.c\nrename to lib/pack-mtimes.c\ndiff --git a/pack-mtimes.h b/lib/pack-mtimes.h\nsimilarity index 100%\nrename from pack-mtimes.h\nrename to lib/pack-mtimes.h\ndiff --git a/pack-objects.c b/lib/pack-objects.c\nsimilarity index 100%\nrename from pack-objects.c\nrename to lib/pack-objects.c\ndiff --git a/pack-objects.h b/lib/pack-objects.h\nsimilarity index 100%\nrename from pack-objects.h\nrename to lib/pack-objects.h\ndiff --git a/pack-refs.c b/lib/pack-refs.c\nsimilarity index 100%\nrename from pack-refs.c\nrename to lib/pack-refs.c\ndiff --git a/pack-refs.h b/lib/pack-refs.h\nsimilarity index 100%\nrename from pack-refs.h\nrename to lib/pack-refs.h\ndiff --git a/pack-revindex.c b/lib/pack-revindex.c\nsimilarity index 100%\nrename from pack-revindex.c\nrename to lib/pack-revindex.c\ndiff --git a/pack-revindex.h b/lib/pack-revindex.h\nsimilarity index 100%\nrename from pack-revindex.h\nrename to lib/pack-revindex.h\ndiff --git a/pack-write.c b/lib/pack-write.c\nsimilarity index 100%\nrename from pack-write.c\nrename to lib/pack-write.c\ndiff --git a/pack.h b/lib/pack.h\nsimilarity index 100%\nrename from pack.h\nrename to lib/pack.h\ndiff --git a/packfile-list.c b/lib/packfile-list.c\nsimilarity index 100%\nrename from packfile-list.c\nrename to lib/packfile-list.c\ndiff --git a/packfile-list.h b/lib/packfile-list.h\nsimilarity index 100%\nrename from packfile-list.h\nrename to lib/packfile-list.h\ndiff --git a/packfile.c b/lib/packfile.c\nsimilarity index 100%\nrename from packfile.c\nrename to lib/packfile.c\ndiff --git a/packfile.h b/lib/packfile.h\nsimilarity index 100%\nrename from packfile.h\nrename to lib/packfile.h\ndiff --git a/pager.c b/lib/pager.c\nsimilarity index 100%\nrename from pager.c\nrename to lib/pager.c\ndiff --git a/pager.h b/lib/pager.h\nsimilarity index 100%\nrename from pager.h\nrename to lib/pager.h\ndiff --git a/parallel-checkout.c b/lib/parallel-checkout.c\nsimilarity index 100%\nrename from parallel-checkout.c\nrename to lib/parallel-checkout.c\ndiff --git a/parallel-checkout.h b/lib/parallel-checkout.h\nsimilarity index 100%\nrename from parallel-checkout.h\nrename to lib/parallel-checkout.h\ndiff --git a/parse-options-cb.c b/lib/parse-options-cb.c\nsimilarity index 100%\nrename from parse-options-cb.c\nrename to lib/parse-options-cb.c\ndiff --git a/parse-options.c b/lib/parse-options.c\nsimilarity index 100%\nrename from parse-options.c\nrename to lib/parse-options.c\ndiff --git a/parse-options.h b/lib/parse-options.h\nsimilarity index 100%\nrename from parse-options.h\nrename to lib/parse-options.h\ndiff --git a/parse.c b/lib/parse.c\nsimilarity index 100%\nrename from parse.c\nrename to lib/parse.c\ndiff --git a/parse.h b/lib/parse.h\nsimilarity index 100%\nrename from parse.h\nrename to lib/parse.h\ndiff --git a/patch-delta.c b/lib/patch-delta.c\nsimilarity index 100%\nrename from patch-delta.c\nrename to lib/patch-delta.c\ndiff --git a/patch-ids.c b/lib/patch-ids.c\nsimilarity index 100%\nrename from patch-ids.c\nrename to lib/patch-ids.c\ndiff --git a/patch-ids.h b/lib/patch-ids.h\nsimilarity index 100%\nrename from patch-ids.h\nrename to lib/patch-ids.h\ndiff --git a/path-walk.c b/lib/path-walk.c\nsimilarity index 100%\nrename from path-walk.c\nrename to lib/path-walk.c\ndiff --git a/path-walk.h b/lib/path-walk.h\nsimilarity index 100%\nrename from path-walk.h\nrename to lib/path-walk.h\ndiff --git a/path.c b/lib/path.c\nsimilarity index 100%\nrename from path.c\nrename to lib/path.c\ndiff --git a/path.h b/lib/path.h\nsimilarity index 100%\nrename from path.h\nrename to lib/path.h\ndiff --git a/pathspec.c b/lib/pathspec.c\nsimilarity index 100%\nrename from pathspec.c\nrename to lib/pathspec.c\ndiff --git a/pathspec.h b/lib/pathspec.h\nsimilarity index 100%\nrename from pathspec.h\nrename to lib/pathspec.h\ndiff --git a/pkt-line.c b/lib/pkt-line.c\nsimilarity index 100%\nrename from pkt-line.c\nrename to lib/pkt-line.c\ndiff --git a/pkt-line.h b/lib/pkt-line.h\nsimilarity index 100%\nrename from pkt-line.h\nrename to lib/pkt-line.h\ndiff --git a/preload-index.c b/lib/preload-index.c\nsimilarity index 100%\nrename from preload-index.c\nrename to lib/preload-index.c\ndiff --git a/preload-index.h b/lib/preload-index.h\nsimilarity index 100%\nrename from preload-index.h\nrename to lib/preload-index.h\ndiff --git a/pretty.c b/lib/pretty.c\nsimilarity index 100%\nrename from pretty.c\nrename to lib/pretty.c\ndiff --git a/pretty.h b/lib/pretty.h\nsimilarity index 100%\nrename from pretty.h\nrename to lib/pretty.h\ndiff --git a/prio-queue.c b/lib/prio-queue.c\nsimilarity index 100%\nrename from prio-queue.c\nrename to lib/prio-queue.c\ndiff --git a/prio-queue.h b/lib/prio-queue.h\nsimilarity index 100%\nrename from prio-queue.h\nrename to lib/prio-queue.h\ndiff --git a/progress.c b/lib/progress.c\nsimilarity index 100%\nrename from progress.c\nrename to lib/progress.c\ndiff --git a/progress.h b/lib/progress.h\nsimilarity index 100%\nrename from progress.h\nrename to lib/progress.h\ndiff --git a/promisor-remote.c b/lib/promisor-remote.c\nsimilarity index 100%\nrename from promisor-remote.c\nrename to lib/promisor-remote.c\ndiff --git a/promisor-remote.h b/lib/promisor-remote.h\nsimilarity index 100%\nrename from promisor-remote.h\nrename to lib/promisor-remote.h\ndiff --git a/prompt.c b/lib/prompt.c\nsimilarity index 100%\nrename from prompt.c\nrename to lib/prompt.c\ndiff --git a/prompt.h b/lib/prompt.h\nsimilarity index 100%\nrename from prompt.h\nrename to lib/prompt.h\ndiff --git a/protocol-caps.c b/lib/protocol-caps.c\nsimilarity index 100%\nrename from protocol-caps.c\nrename to lib/protocol-caps.c\ndiff --git a/protocol-caps.h b/lib/protocol-caps.h\nsimilarity index 100%\nrename from protocol-caps.h\nrename to lib/protocol-caps.h\ndiff --git a/protocol.c b/lib/protocol.c\nsimilarity index 100%\nrename from protocol.c\nrename to lib/protocol.c\ndiff --git a/protocol.h b/lib/protocol.h\nsimilarity index 100%\nrename from protocol.h\nrename to lib/protocol.h\ndiff --git a/prune-packed.c b/lib/prune-packed.c\nsimilarity index 100%\nrename from prune-packed.c\nrename to lib/prune-packed.c\ndiff --git a/prune-packed.h b/lib/prune-packed.h\nsimilarity index 100%\nrename from prune-packed.h\nrename to lib/prune-packed.h\ndiff --git a/pseudo-merge.c b/lib/pseudo-merge.c\nsimilarity index 100%\nrename from pseudo-merge.c\nrename to lib/pseudo-merge.c\ndiff --git a/pseudo-merge.h b/lib/pseudo-merge.h\nsimilarity index 100%\nrename from pseudo-merge.h\nrename to lib/pseudo-merge.h\ndiff --git a/quote.c b/lib/quote.c\nsimilarity index 100%\nrename from quote.c\nrename to lib/quote.c\ndiff --git a/quote.h b/lib/quote.h\nsimilarity index 100%\nrename from quote.h\nrename to lib/quote.h\ndiff --git a/range-diff.c b/lib/range-diff.c\nsimilarity index 100%\nrename from range-diff.c\nrename to lib/range-diff.c\ndiff --git a/range-diff.h b/lib/range-diff.h\nsimilarity index 100%\nrename from range-diff.h\nrename to lib/range-diff.h\ndiff --git a/reachable.c b/lib/reachable.c\nsimilarity index 100%\nrename from reachable.c\nrename to lib/reachable.c\ndiff --git a/reachable.h b/lib/reachable.h\nsimilarity index 100%\nrename from reachable.h\nrename to lib/reachable.h\ndiff --git a/read-cache-ll.h b/lib/read-cache-ll.h\nsimilarity index 100%\nrename from read-cache-ll.h\nrename to lib/read-cache-ll.h\ndiff --git a/read-cache.c b/lib/read-cache.c\nsimilarity index 100%\nrename from read-cache.c\nrename to lib/read-cache.c\ndiff --git a/read-cache.h b/lib/read-cache.h\nsimilarity index 100%\nrename from read-cache.h\nrename to lib/read-cache.h\ndiff --git a/rebase-interactive.c b/lib/rebase-interactive.c\nsimilarity index 100%\nrename from rebase-interactive.c\nrename to lib/rebase-interactive.c\ndiff --git a/rebase-interactive.h b/lib/rebase-interactive.h\nsimilarity index 100%\nrename from rebase-interactive.h\nrename to lib/rebase-interactive.h\ndiff --git a/rebase.c b/lib/rebase.c\nsimilarity index 100%\nrename from rebase.c\nrename to lib/rebase.c\ndiff --git a/rebase.h b/lib/rebase.h\nsimilarity index 100%\nrename from rebase.h\nrename to lib/rebase.h\ndiff --git a/ref-filter.c b/lib/ref-filter.c\nsimilarity index 100%\nrename from ref-filter.c\nrename to lib/ref-filter.c\ndiff --git a/ref-filter.h b/lib/ref-filter.h\nsimilarity index 100%\nrename from ref-filter.h\nrename to lib/ref-filter.h\ndiff --git a/reflog-walk.c b/lib/reflog-walk.c\nsimilarity index 100%\nrename from reflog-walk.c\nrename to lib/reflog-walk.c\ndiff --git a/reflog-walk.h b/lib/reflog-walk.h\nsimilarity index 100%\nrename from reflog-walk.h\nrename to lib/reflog-walk.h\ndiff --git a/reflog.c b/lib/reflog.c\nsimilarity index 100%\nrename from reflog.c\nrename to lib/reflog.c\ndiff --git a/reflog.h b/lib/reflog.h\nsimilarity index 100%\nrename from reflog.h\nrename to lib/reflog.h\ndiff --git a/refs.c b/lib/refs.c\nsimilarity index 100%\nrename from refs.c\nrename to lib/refs.c\ndiff --git a/refs.h b/lib/refs.h\nsimilarity index 100%\nrename from refs.h\nrename to lib/refs.h\ndiff --git a/refs/debug.c b/lib/refs/debug.c\nsimilarity index 100%\nrename from refs/debug.c\nrename to lib/refs/debug.c\ndiff --git a/refs/files-backend.c b/lib/refs/files-backend.c\nsimilarity index 100%\nrename from refs/files-backend.c\nrename to lib/refs/files-backend.c\ndiff --git a/refs/iterator.c b/lib/refs/iterator.c\nsimilarity index 100%\nrename from refs/iterator.c\nrename to lib/refs/iterator.c\ndiff --git a/refs/packed-backend.c b/lib/refs/packed-backend.c\nsimilarity index 100%\nrename from refs/packed-backend.c\nrename to lib/refs/packed-backend.c\ndiff --git a/refs/packed-backend.h b/lib/refs/packed-backend.h\nsimilarity index 100%\nrename from refs/packed-backend.h\nrename to lib/refs/packed-backend.h\ndiff --git a/refs/ref-cache.c b/lib/refs/ref-cache.c\nsimilarity index 100%\nrename from refs/ref-cache.c\nrename to lib/refs/ref-cache.c\ndiff --git a/refs/ref-cache.h b/lib/refs/ref-cache.h\nsimilarity index 100%\nrename from refs/ref-cache.h\nrename to lib/refs/ref-cache.h\ndiff --git a/refs/refs-internal.h b/lib/refs/refs-internal.h\nsimilarity index 100%\nrename from refs/refs-internal.h\nrename to lib/refs/refs-internal.h\ndiff --git a/refs/reftable-backend.c b/lib/refs/reftable-backend.c\nsimilarity index 100%\nrename from refs/reftable-backend.c\nrename to lib/refs/reftable-backend.c\ndiff --git a/refspec.c b/lib/refspec.c\nsimilarity index 100%\nrename from refspec.c\nrename to lib/refspec.c\ndiff --git a/refspec.h b/lib/refspec.h\nsimilarity index 100%\nrename from refspec.h\nrename to lib/refspec.h\ndiff --git a/reftable/LICENSE b/lib/reftable/LICENSE\nsimilarity index 100%\nrename from reftable/LICENSE\nrename to lib/reftable/LICENSE\ndiff --git a/reftable/basics.c b/lib/reftable/basics.c\nsimilarity index 100%\nrename from reftable/basics.c\nrename to lib/reftable/basics.c\ndiff --git a/reftable/basics.h b/lib/reftable/basics.h\nsimilarity index 100%\nrename from reftable/basics.h\nrename to lib/reftable/basics.h\ndiff --git a/reftable/block.c b/lib/reftable/block.c\nsimilarity index 100%\nrename from reftable/block.c\nrename to lib/reftable/block.c\ndiff --git a/reftable/block.h b/lib/reftable/block.h\nsimilarity index 100%\nrename from reftable/block.h\nrename to lib/reftable/block.h\ndiff --git a/reftable/blocksource.c b/lib/reftable/blocksource.c\nsimilarity index 100%\nrename from reftable/blocksource.c\nrename to lib/reftable/blocksource.c\ndiff --git a/reftable/blocksource.h b/lib/reftable/blocksource.h\nsimilarity index 100%\nrename from reftable/blocksource.h\nrename to lib/reftable/blocksource.h\ndiff --git a/reftable/constants.h b/lib/reftable/constants.h\nsimilarity index 100%\nrename from reftable/constants.h\nrename to lib/reftable/constants.h\ndiff --git a/reftable/error.c b/lib/reftable/error.c\nsimilarity index 100%\nrename from reftable/error.c\nrename to lib/reftable/error.c\ndiff --git a/reftable/fsck.c b/lib/reftable/fsck.c\nsimilarity index 100%\nrename from reftable/fsck.c\nrename to lib/reftable/fsck.c\ndiff --git a/reftable/iter.c b/lib/reftable/iter.c\nsimilarity index 100%\nrename from reftable/iter.c\nrename to lib/reftable/iter.c\ndiff --git a/reftable/iter.h b/lib/reftable/iter.h\nsimilarity index 100%\nrename from reftable/iter.h\nrename to lib/reftable/iter.h\ndiff --git a/reftable/merged.c b/lib/reftable/merged.c\nsimilarity index 100%\nrename from reftable/merged.c\nrename to lib/reftable/merged.c\ndiff --git a/reftable/merged.h b/lib/reftable/merged.h\nsimilarity index 100%\nrename from reftable/merged.h\nrename to lib/reftable/merged.h\ndiff --git a/reftable/pq.c b/lib/reftable/pq.c\nsimilarity index 100%\nrename from reftable/pq.c\nrename to lib/reftable/pq.c\ndiff --git a/reftable/pq.h b/lib/reftable/pq.h\nsimilarity index 100%\nrename from reftable/pq.h\nrename to lib/reftable/pq.h\ndiff --git a/reftable/record.c b/lib/reftable/record.c\nsimilarity index 100%\nrename from reftable/record.c\nrename to lib/reftable/record.c\ndiff --git a/reftable/record.h b/lib/reftable/record.h\nsimilarity index 100%\nrename from reftable/record.h\nrename to lib/reftable/record.h\ndiff --git a/reftable/reftable-basics.h b/lib/reftable/reftable-basics.h\nsimilarity index 100%\nrename from reftable/reftable-basics.h\nrename to lib/reftable/reftable-basics.h\ndiff --git a/reftable/reftable-block.h b/lib/reftable/reftable-block.h\nsimilarity index 100%\nrename from reftable/reftable-block.h\nrename to lib/reftable/reftable-block.h\ndiff --git a/reftable/reftable-blocksource.h b/lib/reftable/reftable-blocksource.h\nsimilarity index 100%\nrename from reftable/reftable-blocksource.h\nrename to lib/reftable/reftable-blocksource.h\ndiff --git a/reftable/reftable-constants.h b/lib/reftable/reftable-constants.h\nsimilarity index 100%\nrename from reftable/reftable-constants.h\nrename to lib/reftable/reftable-constants.h\ndiff --git a/reftable/reftable-error.h b/lib/reftable/reftable-error.h\nsimilarity index 100%\nrename from reftable/reftable-error.h\nrename to lib/reftable/reftable-error.h\ndiff --git a/reftable/reftable-fsck.h b/lib/reftable/reftable-fsck.h\nsimilarity index 100%\nrename from reftable/reftable-fsck.h\nrename to lib/reftable/reftable-fsck.h\ndiff --git a/reftable/reftable-iterator.h b/lib/reftable/reftable-iterator.h\nsimilarity index 100%\nrename from reftable/reftable-iterator.h\nrename to lib/reftable/reftable-iterator.h\ndiff --git a/reftable/reftable-merged.h b/lib/reftable/reftable-merged.h\nsimilarity index 100%\nrename from reftable/reftable-merged.h\nrename to lib/reftable/reftable-merged.h\ndiff --git a/reftable/reftable-record.h b/lib/reftable/reftable-record.h\nsimilarity index 100%\nrename from reftable/reftable-record.h\nrename to lib/reftable/reftable-record.h\ndiff --git a/reftable/reftable-stack.h b/lib/reftable/reftable-stack.h\nsimilarity index 100%\nrename from reftable/reftable-stack.h\nrename to lib/reftable/reftable-stack.h\ndiff --git a/reftable/reftable-system.h b/lib/reftable/reftable-system.h\nsimilarity index 100%\nrename from reftable/reftable-system.h\nrename to lib/reftable/reftable-system.h\ndiff --git a/reftable/reftable-table.h b/lib/reftable/reftable-table.h\nsimilarity index 100%\nrename from reftable/reftable-table.h\nrename to lib/reftable/reftable-table.h\ndiff --git a/reftable/reftable-writer.h b/lib/reftable/reftable-writer.h\nsimilarity index 100%\nrename from reftable/reftable-writer.h\nrename to lib/reftable/reftable-writer.h\ndiff --git a/reftable/stack.c b/lib/reftable/stack.c\nsimilarity index 100%\nrename from reftable/stack.c\nrename to lib/reftable/stack.c\ndiff --git a/reftable/stack.h b/lib/reftable/stack.h\nsimilarity index 100%\nrename from reftable/stack.h\nrename to lib/reftable/stack.h\ndiff --git a/reftable/system.c b/lib/reftable/system.c\nsimilarity index 100%\nrename from reftable/system.c\nrename to lib/reftable/system.c\ndiff --git a/reftable/system.h b/lib/reftable/system.h\nsimilarity index 100%\nrename from reftable/system.h\nrename to lib/reftable/system.h\ndiff --git a/reftable/table.c b/lib/reftable/table.c\nsimilarity index 100%\nrename from reftable/table.c\nrename to lib/reftable/table.c\ndiff --git a/reftable/table.h b/lib/reftable/table.h\nsimilarity index 100%\nrename from reftable/table.h\nrename to lib/reftable/table.h\ndiff --git a/reftable/tree.c b/lib/reftable/tree.c\nsimilarity index 100%\nrename from reftable/tree.c\nrename to lib/reftable/tree.c\ndiff --git a/reftable/tree.h b/lib/reftable/tree.h\nsimilarity index 100%\nrename from reftable/tree.h\nrename to lib/reftable/tree.h\ndiff --git a/reftable/writer.c b/lib/reftable/writer.c\nsimilarity index 100%\nrename from reftable/writer.c\nrename to lib/reftable/writer.c\ndiff --git a/reftable/writer.h b/lib/reftable/writer.h\nsimilarity index 100%\nrename from reftable/writer.h\nrename to lib/reftable/writer.h\ndiff --git a/remote.c b/lib/remote.c\nsimilarity index 100%\nrename from remote.c\nrename to lib/remote.c\ndiff --git a/remote.h b/lib/remote.h\nsimilarity index 100%\nrename from remote.h\nrename to lib/remote.h\ndiff --git a/repack-cruft.c b/lib/repack-cruft.c\nsimilarity index 100%\nrename from repack-cruft.c\nrename to lib/repack-cruft.c\ndiff --git a/repack-filtered.c b/lib/repack-filtered.c\nsimilarity index 100%\nrename from repack-filtered.c\nrename to lib/repack-filtered.c\ndiff --git a/repack-geometry.c b/lib/repack-geometry.c\nsimilarity index 100%\nrename from repack-geometry.c\nrename to lib/repack-geometry.c\ndiff --git a/repack-midx.c b/lib/repack-midx.c\nsimilarity index 100%\nrename from repack-midx.c\nrename to lib/repack-midx.c\ndiff --git a/repack-promisor.c b/lib/repack-promisor.c\nsimilarity index 100%\nrename from repack-promisor.c\nrename to lib/repack-promisor.c\ndiff --git a/repack.c b/lib/repack.c\nsimilarity index 100%\nrename from repack.c\nrename to lib/repack.c\ndiff --git a/repack.h b/lib/repack.h\nsimilarity index 100%\nrename from repack.h\nrename to lib/repack.h\ndiff --git a/replace-object.c b/lib/replace-object.c\nsimilarity index 100%\nrename from replace-object.c\nrename to lib/replace-object.c\ndiff --git a/replace-object.h b/lib/replace-object.h\nsimilarity index 100%\nrename from replace-object.h\nrename to lib/replace-object.h\ndiff --git a/replay.c b/lib/replay.c\nsimilarity index 100%\nrename from replay.c\nrename to lib/replay.c\ndiff --git a/replay.h b/lib/replay.h\nsimilarity index 100%\nrename from replay.h\nrename to lib/replay.h\ndiff --git a/repo-settings.c b/lib/repo-settings.c\nsimilarity index 100%\nrename from repo-settings.c\nrename to lib/repo-settings.c\ndiff --git a/repo-settings.h b/lib/repo-settings.h\nsimilarity index 100%\nrename from repo-settings.h\nrename to lib/repo-settings.h\ndiff --git a/repository.c b/lib/repository.c\nsimilarity index 100%\nrename from repository.c\nrename to lib/repository.c\ndiff --git a/repository.h b/lib/repository.h\nsimilarity index 100%\nrename from repository.h\nrename to lib/repository.h\ndiff --git a/rerere.c b/lib/rerere.c\nsimilarity index 100%\nrename from rerere.c\nrename to lib/rerere.c\ndiff --git a/rerere.h b/lib/rerere.h\nsimilarity index 100%\nrename from rerere.h\nrename to lib/rerere.h\ndiff --git a/reset.c b/lib/reset.c\nsimilarity index 100%\nrename from reset.c\nrename to lib/reset.c\ndiff --git a/reset.h b/lib/reset.h\nsimilarity index 100%\nrename from reset.h\nrename to lib/reset.h\ndiff --git a/resolve-undo.c b/lib/resolve-undo.c\nsimilarity index 100%\nrename from resolve-undo.c\nrename to lib/resolve-undo.c\ndiff --git a/resolve-undo.h b/lib/resolve-undo.h\nsimilarity index 100%\nrename from resolve-undo.h\nrename to lib/resolve-undo.h\ndiff --git a/revision.c b/lib/revision.c\nsimilarity index 100%\nrename from revision.c\nrename to lib/revision.c\ndiff --git a/revision.h b/lib/revision.h\nsimilarity index 100%\nrename from revision.h\nrename to lib/revision.h\ndiff --git a/run-command.c b/lib/run-command.c\nsimilarity index 100%\nrename from run-command.c\nrename to lib/run-command.c\ndiff --git a/run-command.h b/lib/run-command.h\nsimilarity index 100%\nrename from run-command.h\nrename to lib/run-command.h\ndiff --git a/sane-ctype.h b/lib/sane-ctype.h\nsimilarity index 100%\nrename from sane-ctype.h\nrename to lib/sane-ctype.h\ndiff --git a/send-pack.c b/lib/send-pack.c\nsimilarity index 100%\nrename from send-pack.c\nrename to lib/send-pack.c\ndiff --git a/send-pack.h b/lib/send-pack.h\nsimilarity index 100%\nrename from send-pack.h\nrename to lib/send-pack.h\ndiff --git a/sequencer.c b/lib/sequencer.c\nsimilarity index 100%\nrename from sequencer.c\nrename to lib/sequencer.c\ndiff --git a/sequencer.h b/lib/sequencer.h\nsimilarity index 100%\nrename from sequencer.h\nrename to lib/sequencer.h\ndiff --git a/serve.c b/lib/serve.c\nsimilarity index 100%\nrename from serve.c\nrename to lib/serve.c\ndiff --git a/serve.h b/lib/serve.h\nsimilarity index 100%\nrename from serve.h\nrename to lib/serve.h\ndiff --git a/server-info.c b/lib/server-info.c\nsimilarity index 100%\nrename from server-info.c\nrename to lib/server-info.c\ndiff --git a/server-info.h b/lib/server-info.h\nsimilarity index 100%\nrename from server-info.h\nrename to lib/server-info.h\ndiff --git a/setup.c b/lib/setup.c\nsimilarity index 100%\nrename from setup.c\nrename to lib/setup.c\ndiff --git a/setup.h b/lib/setup.h\nsimilarity index 100%\nrename from setup.h\nrename to lib/setup.h\ndiff --git a/sha1/openssl.h b/lib/sha1/openssl.h\nsimilarity index 100%\nrename from sha1/openssl.h\nrename to lib/sha1/openssl.h\ndiff --git a/sha1collisiondetection b/lib/sha1collisiondetection\nsimilarity index 100%\nrename from sha1collisiondetection\nrename to lib/sha1collisiondetection\ndiff --git a/sha1dc/.gitattributes b/lib/sha1dc/.gitattributes\nsimilarity index 100%\nrename from sha1dc/.gitattributes\nrename to lib/sha1dc/.gitattributes\ndiff --git a/sha1dc/LICENSE.txt b/lib/sha1dc/LICENSE.txt\nsimilarity index 100%\nrename from sha1dc/LICENSE.txt\nrename to lib/sha1dc/LICENSE.txt\ndiff --git a/sha1dc/sha1.c b/lib/sha1dc/sha1.c\nsimilarity index 100%\nrename from sha1dc/sha1.c\nrename to lib/sha1dc/sha1.c\ndiff --git a/sha1dc/sha1.h b/lib/sha1dc/sha1.h\nsimilarity index 100%\nrename from sha1dc/sha1.h\nrename to lib/sha1dc/sha1.h\ndiff --git a/sha1dc/ubc_check.c b/lib/sha1dc/ubc_check.c\nsimilarity index 100%\nrename from sha1dc/ubc_check.c\nrename to lib/sha1dc/ubc_check.c\ndiff --git a/sha1dc/ubc_check.h b/lib/sha1dc/ubc_check.h\nsimilarity index 100%\nrename from sha1dc/ubc_check.h\nrename to lib/sha1dc/ubc_check.h\ndiff --git a/sha1dc_git.c b/lib/sha1dc_git.c\nsimilarity index 100%\nrename from sha1dc_git.c\nrename to lib/sha1dc_git.c\ndiff --git a/sha1dc_git.h b/lib/sha1dc_git.h\nsimilarity index 100%\nrename from sha1dc_git.h\nrename to lib/sha1dc_git.h\ndiff --git a/sha256/block/sha256.c b/lib/sha256/block/sha256.c\nsimilarity index 100%\nrename from sha256/block/sha256.c\nrename to lib/sha256/block/sha256.c\ndiff --git a/sha256/block/sha256.h b/lib/sha256/block/sha256.h\nsimilarity index 100%\nrename from sha256/block/sha256.h\nrename to lib/sha256/block/sha256.h\ndiff --git a/sha256/gcrypt.h b/lib/sha256/gcrypt.h\nsimilarity index 100%\nrename from sha256/gcrypt.h\nrename to lib/sha256/gcrypt.h\ndiff --git a/sha256/nettle.h b/lib/sha256/nettle.h\nsimilarity index 100%\nrename from sha256/nettle.h\nrename to lib/sha256/nettle.h\ndiff --git a/sha256/openssl.h b/lib/sha256/openssl.h\nsimilarity index 100%\nrename from sha256/openssl.h\nrename to lib/sha256/openssl.h\ndiff --git a/shallow.c b/lib/shallow.c\nsimilarity index 100%\nrename from shallow.c\nrename to lib/shallow.c\ndiff --git a/shallow.h b/lib/shallow.h\nsimilarity index 100%\nrename from shallow.h\nrename to lib/shallow.h\ndiff --git a/shortlog.h b/lib/shortlog.h\nsimilarity index 100%\nrename from shortlog.h\nrename to lib/shortlog.h\ndiff --git a/sideband.c b/lib/sideband.c\nsimilarity index 100%\nrename from sideband.c\nrename to lib/sideband.c\ndiff --git a/sideband.h b/lib/sideband.h\nsimilarity index 100%\nrename from sideband.h\nrename to lib/sideband.h\ndiff --git a/sigchain.c b/lib/sigchain.c\nsimilarity index 100%\nrename from sigchain.c\nrename to lib/sigchain.c\ndiff --git a/sigchain.h b/lib/sigchain.h\nsimilarity index 100%\nrename from sigchain.h\nrename to lib/sigchain.h\ndiff --git a/simple-ipc.h b/lib/simple-ipc.h\nsimilarity index 100%\nrename from simple-ipc.h\nrename to lib/simple-ipc.h\ndiff --git a/sparse-index.c b/lib/sparse-index.c\nsimilarity index 100%\nrename from sparse-index.c\nrename to lib/sparse-index.c\ndiff --git a/sparse-index.h b/lib/sparse-index.h\nsimilarity index 100%\nrename from sparse-index.h\nrename to lib/sparse-index.h\ndiff --git a/split-index.c b/lib/split-index.c\nsimilarity index 100%\nrename from split-index.c\nrename to lib/split-index.c\ndiff --git a/split-index.h b/lib/split-index.h\nsimilarity index 100%\nrename from split-index.h\nrename to lib/split-index.h\ndiff --git a/stable-qsort.c b/lib/stable-qsort.c\nsimilarity index 100%\nrename from stable-qsort.c\nrename to lib/stable-qsort.c\ndiff --git a/statinfo.c b/lib/statinfo.c\nsimilarity index 100%\nrename from statinfo.c\nrename to lib/statinfo.c\ndiff --git a/statinfo.h b/lib/statinfo.h\nsimilarity index 100%\nrename from statinfo.h\nrename to lib/statinfo.h\ndiff --git a/strbuf.c b/lib/strbuf.c\nsimilarity index 100%\nrename from strbuf.c\nrename to lib/strbuf.c\ndiff --git a/strbuf.h b/lib/strbuf.h\nsimilarity index 100%\nrename from strbuf.h\nrename to lib/strbuf.h\ndiff --git a/string-list.c b/lib/string-list.c\nsimilarity index 100%\nrename from string-list.c\nrename to lib/string-list.c\ndiff --git a/string-list.h b/lib/string-list.h\nsimilarity index 100%\nrename from string-list.h\nrename to lib/string-list.h\ndiff --git a/strmap.c b/lib/strmap.c\nsimilarity index 100%\nrename from strmap.c\nrename to lib/strmap.c\ndiff --git a/strmap.h b/lib/strmap.h\nsimilarity index 100%\nrename from strmap.h\nrename to lib/strmap.h\ndiff --git a/strvec.c b/lib/strvec.c\nsimilarity index 100%\nrename from strvec.c\nrename to lib/strvec.c\ndiff --git a/strvec.h b/lib/strvec.h\nsimilarity index 100%\nrename from strvec.h\nrename to lib/strvec.h\ndiff --git a/sub-process.c b/lib/sub-process.c\nsimilarity index 100%\nrename from sub-process.c\nrename to lib/sub-process.c\ndiff --git a/sub-process.h b/lib/sub-process.h\nsimilarity index 100%\nrename from sub-process.h\nrename to lib/sub-process.h\ndiff --git a/submodule-config.c b/lib/submodule-config.c\nsimilarity index 100%\nrename from submodule-config.c\nrename to lib/submodule-config.c\ndiff --git a/submodule-config.h b/lib/submodule-config.h\nsimilarity index 100%\nrename from submodule-config.h\nrename to lib/submodule-config.h\ndiff --git a/submodule.c b/lib/submodule.c\nsimilarity index 100%\nrename from submodule.c\nrename to lib/submodule.c\ndiff --git a/submodule.h b/lib/submodule.h\nsimilarity index 100%\nrename from submodule.h\nrename to lib/submodule.h\ndiff --git a/symlinks.c b/lib/symlinks.c\nsimilarity index 100%\nrename from symlinks.c\nrename to lib/symlinks.c\ndiff --git a/symlinks.h b/lib/symlinks.h\nsimilarity index 100%\nrename from symlinks.h\nrename to lib/symlinks.h\ndiff --git a/tag.c b/lib/tag.c\nsimilarity index 100%\nrename from tag.c\nrename to lib/tag.c\ndiff --git a/tag.h b/lib/tag.h\nsimilarity index 100%\nrename from tag.h\nrename to lib/tag.h\ndiff --git a/tar.h b/lib/tar.h\nsimilarity index 100%\nrename from tar.h\nrename to lib/tar.h\ndiff --git a/tempfile.c b/lib/tempfile.c\nsimilarity index 100%\nrename from tempfile.c\nrename to lib/tempfile.c\ndiff --git a/tempfile.h b/lib/tempfile.h\nsimilarity index 100%\nrename from tempfile.h\nrename to lib/tempfile.h\ndiff --git a/thread-utils.c b/lib/thread-utils.c\nsimilarity index 100%\nrename from thread-utils.c\nrename to lib/thread-utils.c\ndiff --git a/thread-utils.h b/lib/thread-utils.h\nsimilarity index 100%\nrename from thread-utils.h\nrename to lib/thread-utils.h\ndiff --git a/tmp-objdir.c b/lib/tmp-objdir.c\nsimilarity index 100%\nrename from tmp-objdir.c\nrename to lib/tmp-objdir.c\ndiff --git a/tmp-objdir.h b/lib/tmp-objdir.h\nsimilarity index 100%\nrename from tmp-objdir.h\nrename to lib/tmp-objdir.h\ndiff --git a/trace.c b/lib/trace.c\nsimilarity index 100%\nrename from trace.c\nrename to lib/trace.c\ndiff --git a/trace.h b/lib/trace.h\nsimilarity index 100%\nrename from trace.h\nrename to lib/trace.h\ndiff --git a/trace2.c b/lib/trace2.c\nsimilarity index 100%\nrename from trace2.c\nrename to lib/trace2.c\ndiff --git a/trace2.h b/lib/trace2.h\nsimilarity index 100%\nrename from trace2.h\nrename to lib/trace2.h\ndiff --git a/trace2/tr2_cfg.c b/lib/trace2/tr2_cfg.c\nsimilarity index 100%\nrename from trace2/tr2_cfg.c\nrename to lib/trace2/tr2_cfg.c\ndiff --git a/trace2/tr2_cfg.h b/lib/trace2/tr2_cfg.h\nsimilarity index 100%\nrename from trace2/tr2_cfg.h\nrename to lib/trace2/tr2_cfg.h\ndiff --git a/trace2/tr2_cmd_name.c b/lib/trace2/tr2_cmd_name.c\nsimilarity index 100%\nrename from trace2/tr2_cmd_name.c\nrename to lib/trace2/tr2_cmd_name.c\ndiff --git a/trace2/tr2_cmd_name.h b/lib/trace2/tr2_cmd_name.h\nsimilarity index 100%\nrename from trace2/tr2_cmd_name.h\nrename to lib/trace2/tr2_cmd_name.h\ndiff --git a/trace2/tr2_ctr.c b/lib/trace2/tr2_ctr.c\nsimilarity index 100%\nrename from trace2/tr2_ctr.c\nrename to lib/trace2/tr2_ctr.c\ndiff --git a/trace2/tr2_ctr.h b/lib/trace2/tr2_ctr.h\nsimilarity index 100%\nrename from trace2/tr2_ctr.h\nrename to lib/trace2/tr2_ctr.h\ndiff --git a/trace2/tr2_dst.c b/lib/trace2/tr2_dst.c\nsimilarity index 100%\nrename from trace2/tr2_dst.c\nrename to lib/trace2/tr2_dst.c\ndiff --git a/trace2/tr2_dst.h b/lib/trace2/tr2_dst.h\nsimilarity index 100%\nrename from trace2/tr2_dst.h\nrename to lib/trace2/tr2_dst.h\ndiff --git a/trace2/tr2_sid.c b/lib/trace2/tr2_sid.c\nsimilarity index 100%\nrename from trace2/tr2_sid.c\nrename to lib/trace2/tr2_sid.c\ndiff --git a/trace2/tr2_sid.h b/lib/trace2/tr2_sid.h\nsimilarity index 100%\nrename from trace2/tr2_sid.h\nrename to lib/trace2/tr2_sid.h\ndiff --git a/trace2/tr2_sysenv.c b/lib/trace2/tr2_sysenv.c\nsimilarity index 100%\nrename from trace2/tr2_sysenv.c\nrename to lib/trace2/tr2_sysenv.c\ndiff --git a/trace2/tr2_sysenv.h b/lib/trace2/tr2_sysenv.h\nsimilarity index 100%\nrename from trace2/tr2_sysenv.h\nrename to lib/trace2/tr2_sysenv.h\ndiff --git a/trace2/tr2_tbuf.c b/lib/trace2/tr2_tbuf.c\nsimilarity index 100%\nrename from trace2/tr2_tbuf.c\nrename to lib/trace2/tr2_tbuf.c\ndiff --git a/trace2/tr2_tbuf.h b/lib/trace2/tr2_tbuf.h\nsimilarity index 100%\nrename from trace2/tr2_tbuf.h\nrename to lib/trace2/tr2_tbuf.h\ndiff --git a/trace2/tr2_tgt.h b/lib/trace2/tr2_tgt.h\nsimilarity index 100%\nrename from trace2/tr2_tgt.h\nrename to lib/trace2/tr2_tgt.h\ndiff --git a/trace2/tr2_tgt_event.c b/lib/trace2/tr2_tgt_event.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_event.c\nrename to lib/trace2/tr2_tgt_event.c\ndiff --git a/trace2/tr2_tgt_normal.c b/lib/trace2/tr2_tgt_normal.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_normal.c\nrename to lib/trace2/tr2_tgt_normal.c\ndiff --git a/trace2/tr2_tgt_perf.c b/lib/trace2/tr2_tgt_perf.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_perf.c\nrename to lib/trace2/tr2_tgt_perf.c\ndiff --git a/trace2/tr2_tls.c b/lib/trace2/tr2_tls.c\nsimilarity index 100%\nrename from trace2/tr2_tls.c\nrename to lib/trace2/tr2_tls.c\ndiff --git a/trace2/tr2_tls.h b/lib/trace2/tr2_tls.h\nsimilarity index 100%\nrename from trace2/tr2_tls.h\nrename to lib/trace2/tr2_tls.h\ndiff --git a/trace2/tr2_tmr.c b/lib/trace2/tr2_tmr.c\nsimilarity index 100%\nrename from trace2/tr2_tmr.c\nrename to lib/trace2/tr2_tmr.c\ndiff --git a/trace2/tr2_tmr.h b/lib/trace2/tr2_tmr.h\nsimilarity index 100%\nrename from trace2/tr2_tmr.h\nrename to lib/trace2/tr2_tmr.h\ndiff --git a/trailer.c b/lib/trailer.c\nsimilarity index 100%\nrename from trailer.c\nrename to lib/trailer.c\ndiff --git a/trailer.h b/lib/trailer.h\nsimilarity index 100%\nrename from trailer.h\nrename to lib/trailer.h\ndiff --git a/transport-helper.c b/lib/transport-helper.c\nsimilarity index 100%\nrename from transport-helper.c\nrename to lib/transport-helper.c\ndiff --git a/transport-internal.h b/lib/transport-internal.h\nsimilarity index 100%\nrename from transport-internal.h\nrename to lib/transport-internal.h\ndiff --git a/transport.c b/lib/transport.c\nsimilarity index 100%\nrename from transport.c\nrename to lib/transport.c\ndiff --git a/transport.h b/lib/transport.h\nsimilarity index 100%\nrename from transport.h\nrename to lib/transport.h\ndiff --git a/tree-diff.c b/lib/tree-diff.c\nsimilarity index 100%\nrename from tree-diff.c\nrename to lib/tree-diff.c\ndiff --git a/tree-walk.c b/lib/tree-walk.c\nsimilarity index 100%\nrename from tree-walk.c\nrename to lib/tree-walk.c\ndiff --git a/tree-walk.h b/lib/tree-walk.h\nsimilarity index 100%\nrename from tree-walk.h\nrename to lib/tree-walk.h\ndiff --git a/tree.c b/lib/tree.c\nsimilarity index 100%\nrename from tree.c\nrename to lib/tree.c\ndiff --git a/tree.h b/lib/tree.h\nsimilarity index 100%\nrename from tree.h\nrename to lib/tree.h\ndiff --git a/unicode-width.h b/lib/unicode-width.h\nsimilarity index 100%\nrename from unicode-width.h\nrename to lib/unicode-width.h\ndiff --git a/unix-socket.c b/lib/unix-socket.c\nsimilarity index 100%\nrename from unix-socket.c\nrename to lib/unix-socket.c\ndiff --git a/unix-socket.h b/lib/unix-socket.h\nsimilarity index 100%\nrename from unix-socket.h\nrename to lib/unix-socket.h\ndiff --git a/unix-stream-server.c b/lib/unix-stream-server.c\nsimilarity index 100%\nrename from unix-stream-server.c\nrename to lib/unix-stream-server.c\ndiff --git a/unix-stream-server.h b/lib/unix-stream-server.h\nsimilarity index 100%\nrename from unix-stream-server.h\nrename to lib/unix-stream-server.h\ndiff --git a/unpack-trees.c b/lib/unpack-trees.c\nsimilarity index 100%\nrename from unpack-trees.c\nrename to lib/unpack-trees.c\ndiff --git a/unpack-trees.h b/lib/unpack-trees.h\nsimilarity index 100%\nrename from unpack-trees.h\nrename to lib/unpack-trees.h\ndiff --git a/upload-pack.c b/lib/upload-pack.c\nsimilarity index 100%\nrename from upload-pack.c\nrename to lib/upload-pack.c\ndiff --git a/upload-pack.h b/lib/upload-pack.h\nsimilarity index 100%\nrename from upload-pack.h\nrename to lib/upload-pack.h\ndiff --git a/url.c b/lib/url.c\nsimilarity index 100%\nrename from url.c\nrename to lib/url.c\ndiff --git a/url.h b/lib/url.h\nsimilarity index 100%\nrename from url.h\nrename to lib/url.h\ndiff --git a/urlmatch.c b/lib/urlmatch.c\nsimilarity index 100%\nrename from urlmatch.c\nrename to lib/urlmatch.c\ndiff --git a/urlmatch.h b/lib/urlmatch.h\nsimilarity index 100%\nrename from urlmatch.h\nrename to lib/urlmatch.h\ndiff --git a/usage.c b/lib/usage.c\nsimilarity index 100%\nrename from usage.c\nrename to lib/usage.c\ndiff --git a/userdiff.c b/lib/userdiff.c\nsimilarity index 100%\nrename from userdiff.c\nrename to lib/userdiff.c\ndiff --git a/userdiff.h b/lib/userdiff.h\nsimilarity index 100%\nrename from userdiff.h\nrename to lib/userdiff.h\ndiff --git a/utf8.c b/lib/utf8.c\nsimilarity index 100%\nrename from utf8.c\nrename to lib/utf8.c\ndiff --git a/utf8.h b/lib/utf8.h\nsimilarity index 100%\nrename from utf8.h\nrename to lib/utf8.h\ndiff --git a/varint.c b/lib/varint.c\nsimilarity index 100%\nrename from varint.c\nrename to lib/varint.c\ndiff --git a/varint.h b/lib/varint.h\nsimilarity index 100%\nrename from varint.h\nrename to lib/varint.h\ndiff --git a/version-def.h.in b/lib/version-def.h.in\nsimilarity index 100%\nrename from version-def.h.in\nrename to lib/version-def.h.in\ndiff --git a/version.c b/lib/version.c\nsimilarity index 100%\nrename from version.c\nrename to lib/version.c\ndiff --git a/version.h b/lib/version.h\nsimilarity index 100%\nrename from version.h\nrename to lib/version.h\ndiff --git a/versioncmp.c b/lib/versioncmp.c\nsimilarity index 100%\nrename from versioncmp.c\nrename to lib/versioncmp.c\ndiff --git a/versioncmp.h b/lib/versioncmp.h\nsimilarity index 100%\nrename from versioncmp.h\nrename to lib/versioncmp.h\ndiff --git a/walker.c b/lib/walker.c\nsimilarity index 100%\nrename from walker.c\nrename to lib/walker.c\ndiff --git a/walker.h b/lib/walker.h\nsimilarity index 100%\nrename from walker.h\nrename to lib/walker.h\ndiff --git a/wildmatch.c b/lib/wildmatch.c\nsimilarity index 100%\nrename from wildmatch.c\nrename to lib/wildmatch.c\ndiff --git a/wildmatch.h b/lib/wildmatch.h\nsimilarity index 100%\nrename from wildmatch.h\nrename to lib/wildmatch.h\ndiff --git a/worktree.c b/lib/worktree.c\nsimilarity index 100%\nrename from worktree.c\nrename to lib/worktree.c\ndiff --git a/worktree.h b/lib/worktree.h\nsimilarity index 100%\nrename from worktree.h\nrename to lib/worktree.h\ndiff --git a/wrapper.c b/lib/wrapper.c\nsimilarity index 100%\nrename from wrapper.c\nrename to lib/wrapper.c\ndiff --git a/wrapper.h b/lib/wrapper.h\nsimilarity index 100%\nrename from wrapper.h\nrename to lib/wrapper.h\ndiff --git a/write-or-die.c b/lib/write-or-die.c\nsimilarity index 100%\nrename from write-or-die.c\nrename to lib/write-or-die.c\ndiff --git a/write-or-die.h b/lib/write-or-die.h\nsimilarity index 100%\nrename from write-or-die.h\nrename to lib/write-or-die.h\ndiff --git a/ws.c b/lib/ws.c\nsimilarity index 100%\nrename from ws.c\nrename to lib/ws.c\ndiff --git a/ws.h b/lib/ws.h\nsimilarity index 100%\nrename from ws.h\nrename to lib/ws.h\ndiff --git a/wt-status.c b/lib/wt-status.c\nsimilarity index 100%\nrename from wt-status.c\nrename to lib/wt-status.c\ndiff --git a/wt-status.h b/lib/wt-status.h\nsimilarity index 100%\nrename from wt-status.h\nrename to lib/wt-status.h\ndiff --git a/xdiff-interface.c b/lib/xdiff-interface.c\nsimilarity index 100%\nrename from xdiff-interface.c\nrename to lib/xdiff-interface.c\ndiff --git a/xdiff-interface.h b/lib/xdiff-interface.h\nsimilarity index 100%\nrename from xdiff-interface.h\nrename to lib/xdiff-interface.h\ndiff --git a/xdiff/xdiff.h b/lib/xdiff/xdiff.h\nsimilarity index 100%\nrename from xdiff/xdiff.h\nrename to lib/xdiff/xdiff.h\ndiff --git a/xdiff/xdiffi.c b/lib/xdiff/xdiffi.c\nsimilarity index 100%\nrename from xdiff/xdiffi.c\nrename to lib/xdiff/xdiffi.c\ndiff --git a/xdiff/xdiffi.h b/lib/xdiff/xdiffi.h\nsimilarity index 100%\nrename from xdiff/xdiffi.h\nrename to lib/xdiff/xdiffi.h\ndiff --git a/xdiff/xemit.c b/lib/xdiff/xemit.c\nsimilarity index 100%\nrename from xdiff/xemit.c\nrename to lib/xdiff/xemit.c\ndiff --git a/xdiff/xemit.h b/lib/xdiff/xemit.h\nsimilarity index 100%\nrename from xdiff/xemit.h\nrename to lib/xdiff/xemit.h\ndiff --git a/xdiff/xhistogram.c b/lib/xdiff/xhistogram.c\nsimilarity index 100%\nrename from xdiff/xhistogram.c\nrename to lib/xdiff/xhistogram.c\ndiff --git a/xdiff/xinclude.h b/lib/xdiff/xinclude.h\nsimilarity index 100%\nrename from xdiff/xinclude.h\nrename to lib/xdiff/xinclude.h\ndiff --git a/xdiff/xmacros.h b/lib/xdiff/xmacros.h\nsimilarity index 100%\nrename from xdiff/xmacros.h\nrename to lib/xdiff/xmacros.h\ndiff --git a/xdiff/xmerge.c b/lib/xdiff/xmerge.c\nsimilarity index 100%\nrename from xdiff/xmerge.c\nrename to lib/xdiff/xmerge.c\ndiff --git a/xdiff/xpatience.c b/lib/xdiff/xpatience.c\nsimilarity index 100%\nrename from xdiff/xpatience.c\nrename to lib/xdiff/xpatience.c\ndiff --git a/xdiff/xprepare.c b/lib/xdiff/xprepare.c\nsimilarity index 100%\nrename from xdiff/xprepare.c\nrename to lib/xdiff/xprepare.c\ndiff --git a/xdiff/xprepare.h b/lib/xdiff/xprepare.h\nsimilarity index 100%\nrename from xdiff/xprepare.h\nrename to lib/xdiff/xprepare.h\ndiff --git a/xdiff/xtypes.h b/lib/xdiff/xtypes.h\nsimilarity index 100%\nrename from xdiff/xtypes.h\nrename to lib/xdiff/xtypes.h\ndiff --git a/xdiff/xutils.c b/lib/xdiff/xutils.c\nsimilarity index 100%\nrename from xdiff/xutils.c\nrename to lib/xdiff/xutils.c\ndiff --git a/xdiff/xutils.h b/lib/xdiff/xutils.h\nsimilarity index 100%\nrename from xdiff/xutils.h\nrename to lib/xdiff/xutils.h\ndiff --git a/meson.build b/meson.build\nindex ca235801cf..2f90bed441 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -272,293 +272,293 @@ version_gen_environment.set('GIT_VERSION', get_option('version'))\n compiler = meson.get_compiler('c')\n \n compat_sources = [\n-  'compat/nonblock.c',\n-  'compat/obstack.c',\n-  'compat/open.c',\n-  'compat/terminal.c',\n+  'lib/compat/nonblock.c',\n+  'lib/compat/obstack.c',\n+  'lib/compat/open.c',\n+  'lib/compat/terminal.c',\n ]\n \n libgit_sources = [\n-  'abspath.c',\n-  'add-interactive.c',\n-  'add-patch.c',\n-  'advice.c',\n-  'alias.c',\n-  'alloc.c',\n-  'apply.c',\n-  'archive-tar.c',\n-  'archive-zip.c',\n-  'archive.c',\n-  'attr.c',\n-  'base85.c',\n-  'bisect.c',\n-  'blame.c',\n-  'blob.c',\n-  'bloom.c',\n-  'branch.c',\n-  'bundle-uri.c',\n-  'bundle.c',\n-  'cache-tree.c',\n-  'cbtree.c',\n-  'chdir-notify.c',\n-  'checkout.c',\n-  'chunk-format.c',\n-  'color.c',\n-  'column.c',\n-  'combine-diff.c',\n-  'commit-graph.c',\n-  'commit-reach.c',\n-  'commit.c',\n-  'common-exit.c',\n-  'common-init.c',\n-  'compiler-tricks/not-constant.c',\n-  'config.c',\n-  'connect.c',\n-  'connected.c',\n-  'convert.c',\n-  'copy.c',\n-  'credential.c',\n-  'csum-file.c',\n-  'ctype.c',\n-  'date.c',\n-  'decorate.c',\n-  'delta-islands.c',\n-  'diagnose.c',\n-  'diff-delta.c',\n-  'diff-merges.c',\n-  'diff-lib.c',\n-  'diff-no-index.c',\n-  'diff.c',\n-  'diffcore-break.c',\n-  'diffcore-delta.c',\n-  'diffcore-order.c',\n-  'diffcore-pickaxe.c',\n-  'diffcore-rename.c',\n-  'diffcore-rotate.c',\n-  'dir-iterator.c',\n-  'dir.c',\n-  'editor.c',\n-  'entry.c',\n-  'environment.c',\n-  'ewah/bitmap.c',\n-  'ewah/ewah_bitmap.c',\n-  'ewah/ewah_io.c',\n-  'ewah/ewah_rlw.c',\n-  'exec-cmd.c',\n-  'fetch-negotiator.c',\n-  'fetch-pack.c',\n-  'fmt-merge-msg.c',\n-  'fsck.c',\n-  'fsmonitor.c',\n-  'fsmonitor-ipc.c',\n-  'fsmonitor-settings.c',\n-  'gettext.c',\n-  'git-zlib.c',\n-  'gpg-interface.c',\n-  'graph.c',\n-  'grep.c',\n-  'hash-lookup.c',\n-  'hash.c',\n-  'hashmap.c',\n-  'help.c',\n-  'hex.c',\n-  'hex-ll.c',\n-  'hook.c',\n-  'ident.c',\n-  'json-writer.c',\n-  'kwset.c',\n-  'levenshtein.c',\n-  'line-log.c',\n-  'line-range.c',\n-  'linear-assignment.c',\n-  'list-objects-filter-options.c',\n-  'list-objects-filter.c',\n-  'list-objects.c',\n-  'lockfile.c',\n-  'log-tree.c',\n-  'loose.c',\n-  'ls-refs.c',\n-  'mailinfo.c',\n-  'mailmap.c',\n-  'match-trees.c',\n-  'mem-pool.c',\n-  'merge-blobs.c',\n-  'merge-ll.c',\n-  'merge-ort.c',\n-  'merge-ort-wrappers.c',\n-  'merge.c',\n-  'midx.c',\n-  'midx-write.c',\n-  'name-hash.c',\n-  'negotiator/default.c',\n-  'negotiator/noop.c',\n-  'negotiator/skipping.c',\n-  'notes-cache.c',\n-  'notes-merge.c',\n-  'notes-utils.c',\n-  'notes.c',\n-  'object-file-convert.c',\n-  'object-file.c',\n-  'object-name.c',\n-  'object.c',\n-  'odb.c',\n-  'odb/source.c',\n-  'odb/source-files.c',\n-  'odb/source-inmemory.c',\n-  'odb/source-loose.c',\n-  'odb/source-packed.c',\n-  'odb/streaming.c',\n-  'odb/transaction.c',\n-  'oid-array.c',\n-  'oidmap.c',\n-  'oidset.c',\n-  'oidtree.c',\n-  'pack-bitmap-write.c',\n-  'pack-bitmap.c',\n-  'pack-check.c',\n-  'pack-mtimes.c',\n-  'pack-objects.c',\n-  'pack-refs.c',\n-  'pack-revindex.c',\n-  'pack-write.c',\n-  'packfile.c',\n-  'packfile-list.c',\n-  'pager.c',\n-  'parallel-checkout.c',\n-  'parse.c',\n-  'parse-options-cb.c',\n-  'parse-options.c',\n-  'patch-delta.c',\n-  'patch-ids.c',\n-  'path.c',\n-  'path-walk.c',\n-  'pathspec.c',\n-  'pkt-line.c',\n-  'preload-index.c',\n-  'pretty.c',\n-  'prio-queue.c',\n-  'progress.c',\n-  'promisor-remote.c',\n-  'prompt.c',\n-  'protocol.c',\n-  'protocol-caps.c',\n-  'prune-packed.c',\n-  'pseudo-merge.c',\n-  'quote.c',\n-  'range-diff.c',\n-  'reachable.c',\n-  'read-cache.c',\n-  'rebase-interactive.c',\n-  'rebase.c',\n-  'ref-filter.c',\n-  'reflog-walk.c',\n-  'reflog.c',\n-  'refs.c',\n-  'refs/debug.c',\n-  'refs/files-backend.c',\n-  'refs/reftable-backend.c',\n-  'refs/iterator.c',\n-  'refs/packed-backend.c',\n-  'refs/ref-cache.c',\n-  'refspec.c',\n-  'reftable/basics.c',\n-  'reftable/error.c',\n-  'reftable/block.c',\n-  'reftable/blocksource.c',\n-  'reftable/fsck.c',\n-  'reftable/iter.c',\n-  'reftable/merged.c',\n-  'reftable/pq.c',\n-  'reftable/record.c',\n-  'reftable/stack.c',\n-  'reftable/system.c',\n-  'reftable/table.c',\n-  'reftable/tree.c',\n-  'reftable/writer.c',\n-  'remote.c',\n-  'repack.c',\n-  'repack-cruft.c',\n-  'repack-filtered.c',\n-  'repack-geometry.c',\n-  'repack-midx.c',\n-  'repack-promisor.c',\n-  'replace-object.c',\n-  'replay.c',\n-  'repo-settings.c',\n-  'repository.c',\n-  'rerere.c',\n-  'reset.c',\n-  'resolve-undo.c',\n-  'revision.c',\n-  'run-command.c',\n-  'send-pack.c',\n-  'sequencer.c',\n-  'serve.c',\n-  'server-info.c',\n-  'setup.c',\n-  'shallow.c',\n-  'sideband.c',\n-  'sigchain.c',\n-  'sparse-index.c',\n-  'split-index.c',\n-  'stable-qsort.c',\n-  'statinfo.c',\n-  'strbuf.c',\n-  'string-list.c',\n-  'strmap.c',\n-  'strvec.c',\n-  'sub-process.c',\n-  'submodule-config.c',\n-  'submodule.c',\n-  'symlinks.c',\n-  'tag.c',\n-  'tempfile.c',\n-  'thread-utils.c',\n-  'tmp-objdir.c',\n-  'trace.c',\n-  'trace2.c',\n-  'trace2/tr2_cfg.c',\n-  'trace2/tr2_cmd_name.c',\n-  'trace2/tr2_ctr.c',\n-  'trace2/tr2_dst.c',\n-  'trace2/tr2_sid.c',\n-  'trace2/tr2_sysenv.c',\n-  'trace2/tr2_tbuf.c',\n-  'trace2/tr2_tgt_event.c',\n-  'trace2/tr2_tgt_normal.c',\n-  'trace2/tr2_tgt_perf.c',\n-  'trace2/tr2_tls.c',\n-  'trace2/tr2_tmr.c',\n-  'trailer.c',\n-  'transport-helper.c',\n-  'transport.c',\n-  'tree-diff.c',\n-  'tree-walk.c',\n-  'tree.c',\n-  'unpack-trees.c',\n-  'upload-pack.c',\n-  'url.c',\n-  'urlmatch.c',\n-  'usage.c',\n-  'userdiff.c',\n-  'utf8.c',\n-  'version.c',\n-  'versioncmp.c',\n-  'walker.c',\n-  'wildmatch.c',\n-  'worktree.c',\n-  'wrapper.c',\n-  'write-or-die.c',\n-  'ws.c',\n-  'wt-status.c',\n-  'xdiff-interface.c',\n-  'xdiff/xdiffi.c',\n-  'xdiff/xemit.c',\n-  'xdiff/xhistogram.c',\n-  'xdiff/xmerge.c',\n-  'xdiff/xpatience.c',\n-  'xdiff/xprepare.c',\n-  'xdiff/xutils.c',\n+  'lib/abspath.c',\n+  'lib/add-interactive.c',\n+  'lib/add-patch.c',\n+  'lib/advice.c',\n+  'lib/alias.c',\n+  'lib/alloc.c',\n+  'lib/apply.c',\n+  'lib/archive-tar.c',\n+  'lib/archive-zip.c',\n+  'lib/archive.c',\n+  'lib/attr.c',\n+  'lib/base85.c',\n+  'lib/bisect.c',\n+  'lib/blame.c',\n+  'lib/blob.c',\n+  'lib/bloom.c',\n+  'lib/branch.c',\n+  'lib/bundle-uri.c',\n+  'lib/bundle.c',\n+  'lib/cache-tree.c',\n+  'lib/cbtree.c',\n+  'lib/chdir-notify.c',\n+  'lib/checkout.c',\n+  'lib/chunk-format.c',\n+  'lib/color.c',\n+  'lib/column.c',\n+  'lib/combine-diff.c',\n+  'lib/commit-graph.c',\n+  'lib/commit-reach.c',\n+  'lib/commit.c',\n+  'lib/common-exit.c',\n+  'lib/common-init.c',\n+  'lib/compiler-tricks/not-constant.c',\n+  'lib/config.c',\n+  'lib/connect.c',\n+  'lib/connected.c',\n+  'lib/convert.c',\n+  'lib/copy.c',\n+  'lib/credential.c',\n+  'lib/csum-file.c',\n+  'lib/ctype.c',\n+  'lib/date.c',\n+  'lib/decorate.c',\n+  'lib/delta-islands.c',\n+  'lib/diagnose.c',\n+  'lib/diff-delta.c',\n+  'lib/diff-merges.c',\n+  'lib/diff-lib.c',\n+  'lib/diff-no-index.c',\n+  'lib/diff.c',\n+  'lib/diffcore-break.c',\n+  'lib/diffcore-delta.c',\n+  'lib/diffcore-order.c',\n+  'lib/diffcore-pickaxe.c',\n+  'lib/diffcore-rename.c',\n+  'lib/diffcore-rotate.c',\n+  'lib/dir-iterator.c',\n+  'lib/dir.c',\n+  'lib/editor.c',\n+  'lib/entry.c',\n+  'lib/environment.c',\n+  'lib/ewah/bitmap.c',\n+  'lib/ewah/ewah_bitmap.c',\n+  'lib/ewah/ewah_io.c',\n+  'lib/ewah/ewah_rlw.c',\n+  'lib/exec-cmd.c',\n+  'lib/fetch-negotiator.c',\n+  'lib/fetch-pack.c',\n+  'lib/fmt-merge-msg.c',\n+  'lib/fsck.c',\n+  'lib/fsmonitor.c',\n+  'lib/fsmonitor-ipc.c',\n+  'lib/fsmonitor-settings.c',\n+  'lib/gettext.c',\n+  'lib/git-zlib.c',\n+  'lib/gpg-interface.c',\n+  'lib/graph.c',\n+  'lib/grep.c',\n+  'lib/hash-lookup.c',\n+  'lib/hash.c',\n+  'lib/hashmap.c',\n+  'lib/help.c',\n+  'lib/hex.c',\n+  'lib/hex-ll.c',\n+  'lib/hook.c',\n+  'lib/ident.c',\n+  'lib/json-writer.c',\n+  'lib/kwset.c',\n+  'lib/levenshtein.c',\n+  'lib/line-log.c',\n+  'lib/line-range.c',\n+  'lib/linear-assignment.c',\n+  'lib/list-objects-filter-options.c',\n+  'lib/list-objects-filter.c',\n+  'lib/list-objects.c',\n+  'lib/lockfile.c',\n+  'lib/log-tree.c',\n+  'lib/loose.c',\n+  'lib/ls-refs.c',\n+  'lib/mailinfo.c',\n+  'lib/mailmap.c',\n+  'lib/match-trees.c',\n+  'lib/mem-pool.c',\n+  'lib/merge-blobs.c',\n+  'lib/merge-ll.c',\n+  'lib/merge-ort.c',\n+  'lib/merge-ort-wrappers.c',\n+  'lib/merge.c',\n+  'lib/midx.c',\n+  'lib/midx-write.c',\n+  'lib/name-hash.c',\n+  'lib/negotiator/default.c',\n+  'lib/negotiator/noop.c',\n+  'lib/negotiator/skipping.c',\n+  'lib/notes-cache.c',\n+  'lib/notes-merge.c',\n+  'lib/notes-utils.c',\n+  'lib/notes.c',\n+  'lib/object-file-convert.c',\n+  'lib/object-file.c',\n+  'lib/object-name.c',\n+  'lib/object.c',\n+  'lib/odb.c',\n+  'lib/odb/source.c',\n+  'lib/odb/source-files.c',\n+  'lib/odb/source-inmemory.c',\n+  'lib/odb/source-loose.c',\n+  'lib/odb/source-packed.c',\n+  'lib/odb/streaming.c',\n+  'lib/odb/transaction.c',\n+  'lib/oid-array.c',\n+  'lib/oidmap.c',\n+  'lib/oidset.c',\n+  'lib/oidtree.c',\n+  'lib/pack-bitmap-write.c',\n+  'lib/pack-bitmap.c',\n+  'lib/pack-check.c',\n+  'lib/pack-mtimes.c',\n+  'lib/pack-objects.c',\n+  'lib/pack-refs.c',\n+  'lib/pack-revindex.c',\n+  'lib/pack-write.c',\n+  'lib/packfile.c',\n+  'lib/packfile-list.c',\n+  'lib/pager.c',\n+  'lib/parallel-checkout.c',\n+  'lib/parse.c',\n+  'lib/parse-options-cb.c',\n+  'lib/parse-options.c',\n+  'lib/patch-delta.c',\n+  'lib/patch-ids.c',\n+  'lib/path.c',\n+  'lib/path-walk.c',\n+  'lib/pathspec.c',\n+  'lib/pkt-line.c',\n+  'lib/preload-index.c',\n+  'lib/pretty.c',\n+  'lib/prio-queue.c',\n+  'lib/progress.c',\n+  'lib/promisor-remote.c',\n+  'lib/prompt.c',\n+  'lib/protocol.c',\n+  'lib/protocol-caps.c',\n+  'lib/prune-packed.c',\n+  'lib/pseudo-merge.c',\n+  'lib/quote.c',\n+  'lib/range-diff.c',\n+  'lib/reachable.c',\n+  'lib/read-cache.c',\n+  'lib/rebase-interactive.c',\n+  'lib/rebase.c',\n+  'lib/ref-filter.c',\n+  'lib/reflog-walk.c',\n+  'lib/reflog.c',\n+  'lib/refs.c',\n+  'lib/refs/debug.c',\n+  'lib/refs/files-backend.c',\n+  'lib/refs/reftable-backend.c',\n+  'lib/refs/iterator.c',\n+  'lib/refs/packed-backend.c',\n+  'lib/refs/ref-cache.c',\n+  'lib/refspec.c',\n+  'lib/reftable/basics.c',\n+  'lib/reftable/error.c',\n+  'lib/reftable/block.c',\n+  'lib/reftable/blocksource.c',\n+  'lib/reftable/fsck.c',\n+  'lib/reftable/iter.c',\n+  'lib/reftable/merged.c',\n+  'lib/reftable/pq.c',\n+  'lib/reftable/record.c',\n+  'lib/reftable/stack.c',\n+  'lib/reftable/system.c',\n+  'lib/reftable/table.c',\n+  'lib/reftable/tree.c',\n+  'lib/reftable/writer.c',\n+  'lib/remote.c',\n+  'lib/repack.c',\n+  'lib/repack-cruft.c',\n+  'lib/repack-filtered.c',\n+  'lib/repack-geometry.c',\n+  'lib/repack-midx.c',\n+  'lib/repack-promisor.c',\n+  'lib/replace-object.c',\n+  'lib/replay.c',\n+  'lib/repo-settings.c',\n+  'lib/repository.c',\n+  'lib/rerere.c',\n+  'lib/reset.c',\n+  'lib/resolve-undo.c',\n+  'lib/revision.c',\n+  'lib/run-command.c',\n+  'lib/send-pack.c',\n+  'lib/sequencer.c',\n+  'lib/serve.c',\n+  'lib/server-info.c',\n+  'lib/setup.c',\n+  'lib/shallow.c',\n+  'lib/sideband.c',\n+  'lib/sigchain.c',\n+  'lib/sparse-index.c',\n+  'lib/split-index.c',\n+  'lib/stable-qsort.c',\n+  'lib/statinfo.c',\n+  'lib/strbuf.c',\n+  'lib/string-list.c',\n+  'lib/strmap.c',\n+  'lib/strvec.c',\n+  'lib/sub-process.c',\n+  'lib/submodule-config.c',\n+  'lib/submodule.c',\n+  'lib/symlinks.c',\n+  'lib/tag.c',\n+  'lib/tempfile.c',\n+  'lib/thread-utils.c',\n+  'lib/tmp-objdir.c',\n+  'lib/trace.c',\n+  'lib/trace2.c',\n+  'lib/trace2/tr2_cfg.c',\n+  'lib/trace2/tr2_cmd_name.c',\n+  'lib/trace2/tr2_ctr.c',\n+  'lib/trace2/tr2_dst.c',\n+  'lib/trace2/tr2_sid.c',\n+  'lib/trace2/tr2_sysenv.c',\n+  'lib/trace2/tr2_tbuf.c',\n+  'lib/trace2/tr2_tgt_event.c',\n+  'lib/trace2/tr2_tgt_normal.c',\n+  'lib/trace2/tr2_tgt_perf.c',\n+  'lib/trace2/tr2_tls.c',\n+  'lib/trace2/tr2_tmr.c',\n+  'lib/trailer.c',\n+  'lib/transport-helper.c',\n+  'lib/transport.c',\n+  'lib/tree-diff.c',\n+  'lib/tree-walk.c',\n+  'lib/tree.c',\n+  'lib/unpack-trees.c',\n+  'lib/upload-pack.c',\n+  'lib/url.c',\n+  'lib/urlmatch.c',\n+  'lib/usage.c',\n+  'lib/userdiff.c',\n+  'lib/utf8.c',\n+  'lib/version.c',\n+  'lib/versioncmp.c',\n+  'lib/walker.c',\n+  'lib/wi"},{"id":"546179","messageId":"xmqqcxxi3eov.fsf@gitster.g","threadId":"65493","inReplyTo":"20260622-pks-libgit-in-subdir-v2-2-cb946c51ee7b@pks.im","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-06-22T13:08:48Z","receivedAt":"2026-06-22T13:08:51Z","isPatch":true,"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> The Git project is not exactly the easiest project to get started in:\n> it's written in C and POSIX shell, with bits of Perl, Rust and other\n> languages sprinkled into it. On top of that, the project has grown\n> somewhat organically over time, making the codebase hard to navigate.\n>\n> But there is a rather practical problem: finding your way around in our\n> project's tree is not easy. Doing a directory listing in the top-level\n> directory will present you with more than 550 files, which makes it\n> extremely hard for a newcomer to figure out what files they are even\n> supposed to look at.\n\nWell, many things already live in the dedicated corner of their own\nuniverse, like tests in t/, builtins in builtins/, and documentation\nin Documentation/.  This is pretty much moving everything else in a\nsingle directory lib/.  Surely there are things like top-level\nMakefile and other build- and ci-related things that do not move to\nlib/ for obvious reasons, but I view this move essentially to change\n\"for core-ish and library-ish things, look at the top level\ndirectory\" to \"for core-ish and library-ish things look at lib/\ndirectory\".\n\nWould that make it easier to navigate?  I am not sure.  What I am\nsure is that this will force many in-flight topic (and soon to be\nin-flight because people are holding them back during the prerelease\nfreeze period) to be updated, and it will make it harder to make\nfixes that can apply both to 2.55 and before and newer codebase.\n\nSo, my initial reaction is somewhat negative, but I am known to\naccept changes that I myself do not necessarily agree with, so...\n"},{"id":"546282","messageId":"ajuyMrQ3Eg4pB-Iz@pks.im","threadId":"65493","inReplyTo":"xmqqcxxi3eov.fsf@gitster.g","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-06-24T10:32:18Z","receivedAt":"2026-06-24T10:32:25Z","isPatch":true,"body":"On Mon, Jun 22, 2026 at 06:08:48AM -0700, Junio C Hamano wrote:\n> Patrick Steinhardt <ps@pks.im> writes:\n> \n> > The Git project is not exactly the easiest project to get started in:\n> > it's written in C and POSIX shell, with bits of Perl, Rust and other\n> > languages sprinkled into it. On top of that, the project has grown\n> > somewhat organically over time, making the codebase hard to navigate.\n> >\n> > But there is a rather practical problem: finding your way around in our\n> > project's tree is not easy. Doing a directory listing in the top-level\n> > directory will present you with more than 550 files, which makes it\n> > extremely hard for a newcomer to figure out what files they are even\n> > supposed to look at.\n> \n> Well, many things already live in the dedicated corner of their own\n> universe, like tests in t/, builtins in builtins/, and documentation\n> in Documentation/.  This is pretty much moving everything else in a\n> single directory lib/.  Surely there are things like top-level\n> Makefile and other build- and ci-related things that do not move to\n> lib/ for obvious reasons, but I view this move essentially to change\n> \"for core-ish and library-ish things, look at the top level\n> directory\" to \"for core-ish and library-ish things look at lib/\n> directory\".\n\nRight. It does drown out the things that have to live in the root\ndirectory though, for example files like README.md or SECURITY.md.\n\n> Would that make it easier to navigate?  I am not sure.  What I am\n> sure is that this will force many in-flight topic (and soon to be\n> in-flight because people are holding them back during the prerelease\n> freeze period) to be updated, and it will make it harder to make\n> fixes that can apply both to 2.55 and before and newer codebase.\n\nThat's definitely a downside, I agree.\n\nI have a bit of a different angle on the second part: it's not uncommon\nthat projects move stuff around, and if Git cannot handle those\nscenarios well that's a usability issue that we'd ideally fix. And by\ndoing such a rename we basically subject ourselves to the same pain that\nother projects are seeing, which might give us more incentive to\nactually fix those pain points.\n\nThis might be a bit of a weird take and might raise some eyebrows. But\nit's basically a tooling issue, and we are the ones who provide the\ntooling. So we're in the best position to fix it, and by doing so make\neveryone elses lives easier, as well.\n\nWho knows how good submodules would have been nowadays if we had used\nthem ourselves? :P\n\n> So, my initial reaction is somewhat negative, but I am known to\n> accept changes that I myself do not necessarily agree with, so...\n\nThat's fair, and just to state the obvious: I'm still happy if the\ncommunity decides that this is not worth doing. But from what I've seen\nuntil now it seems like most feedback I got was rather positive. Which\nhonestly surprised me, I was expecting more pushback.\n\nThanks!\n\nPatrick\n"},{"id":"546288","messageId":"aju-S7ewwrFMkfJa@ugly.lan","threadId":"65493","inReplyTo":"xmqqcxxi3eov.fsf@gitster.g","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Oswald Buddenhagen","fromEmail":"oswald.buddenhagen@gmx.de","sentAt":"2026-06-24T11:23:55Z","receivedAt":"2026-06-24T11:24:06Z","isPatch":true,"body":"On Mon, Jun 22, 2026 at 06:08:48AM -0700, Junio C Hamano wrote:\n>it will make it harder to make\n>fixes that can apply both to 2.55 and before and newer codebase.\n>\nwhich is why i would recommend applying this _before_ the release. it \naffects only the build, which ci checks rather thoroughly, so the risk \nof doing it late in the cycle is low.\nthis obviously won't help with backporting further back, nor will it \navoid having to rebase many pending branches, but see patrick's response \nfor that.\n\nfwiw, i'm totally in favor of the change. i've always found the current \ntree messy and confusing.\n"},{"id":"546485","messageId":"32bb1cf6-1e37-dc0c-dfb2-e78a30763342@gmx.de","threadId":"65493","inReplyTo":"20260622-pks-libgit-in-subdir-v2-2-cb946c51ee7b@pks.im","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2026-06-26T16:01:49Z","receivedAt":"2026-06-26T16:01:52Z","isPatch":true,"body":"Hi Patrick,\n\nOn Mon, 22 Jun 2026, Patrick Steinhardt wrote:\n\n> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> index cf341d74db..a8402babd9 100644\n> --- a/.github/workflows/main.yml\n> +++ b/.github/workflows/main.yml\n> @@ -179,7 +179,7 @@ jobs:\n>        uses: actions/checkout@v6\n>        with:\n>          repository: 'microsoft/vcpkg'\n> -        path: 'compat/vcbuild/vcpkg'\n> +        path: 'lib/compat/vcbuild/vcpkg'\n>      - name: download vcpkg artifacts\n>        uses: git-for-windows/get-azure-pipelines-artifact@v0\n>        with:\n\nPlease also adopt:\n\n-- snip --\nFrom 1d09a51d426bd3592e4f4b0331f7715ab3b5d502 Mon Sep 17 00:00:00 2001\nFrom: Johannes Schindelin <johannes.schindelin@gmx.de>\nDate: Fri, 26 Jun 2026 14:39:19 +0200\nSubject: [PATCH] fixup??? Move libgit.a sources into separate \"lib/\" directory\n\nTurns out that there was one path that was forgotten to be adjusted.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n .github/workflows/main.yml | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 29d2057bde4b..57ad4ba64f67 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -188,6 +188,7 @@ jobs:\n       with:\n         repository: git/git\n         definitionId: 9\n+        path: lib/compat\n     - name: add msbuild to PATH\n       uses: microsoft/setup-msbuild@v3\n     - name: copy dlls to root\n-- snap --\n\nThis is needed to fix the `vs-build` job, see\nhttps://github.com/git-for-windows/git/actions/runs/28242360731 for proof\nthat it's now working.\n\nThank you,\nJohannes\n\n> @@ -189,11 +189,11 @@ jobs:\n>        uses: microsoft/setup-msbuild@v3\n>      - name: copy dlls to root\n>        shell: cmd\n> -      run: compat\\vcbuild\\vcpkg_copy_dlls.bat release\n> +      run: lib\\compat\\vcbuild\\vcpkg_copy_dlls.bat release\n>      - name: generate Visual Studio solution\n>        shell: bash\n>        run: |\n> -        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \\\n> +        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/lib/compat/vcbuild/vcpkg/installed/x64-windows \\\n>          -DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON\n>      - name: MSBuild\n>        run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142\n> @@ -201,7 +201,7 @@ jobs:\n>        shell: bash\n>        env:\n>          MSVC: 1\n> -        VCPKG_ROOT: ${{github.workspace}}\\compat\\vcbuild\\vcpkg\n> +        VCPKG_ROOT: ${{github.workspace}}\\lib\\compat\\vcbuild\\vcpkg\n>        run: |\n>          mkdir -p artifacts &&\n>          eval \"$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)\"\n> [...]\n"},{"id":"546498","messageId":"xmqqwlvl6sr5.fsf@gitster.g","threadId":"65493","inReplyTo":"32bb1cf6-1e37-dc0c-dfb2-e78a30763342@gmx.de","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-06-26T18:50:22Z","receivedAt":"2026-06-26T18:50:25Z","isPatch":true,"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n>> -        path: 'compat/vcbuild/vcpkg'\n>> +        path: 'lib/compat/vcbuild/vcpkg'\n>>      - name: download vcpkg artifacts\n>>        uses: git-for-windows/get-azure-pipelines-artifact@v0\n>>        with:\n>\n> Please also adopt:\n>\n> -- snip --\n> From 1d09a51d426bd3592e4f4b0331f7715ab3b5d502 Mon Sep 17 00:00:00 2001\n> From: Johannes Schindelin <johannes.schindelin@gmx.de>\n> Date: Fri, 26 Jun 2026 14:39:19 +0200\n> Subject: [PATCH] fixup??? Move libgit.a sources into separate \"lib/\" directory\n>\n> Turns out that there was one path that was forgotten to be adjusted.\n>\n> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n> ---\n>  .github/workflows/main.yml | 1 +\n>  1 file changed, 1 insertion(+)\n\nThanks.  Queued at the tip of the topic for now, but I trust Patrick\nwill include/squash it in the next iteration.\n\n"},{"id":"546528","messageId":"aj9wcFEb6oCRnfn2@szeder.dev","threadId":"65493","inReplyTo":"20260622-pks-libgit-in-subdir-v2-2-cb946c51ee7b@pks.im","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2026-06-27T06:40:48Z","receivedAt":"2026-06-27T06:41:02Z","isPatch":true,"body":"On Mon, Jun 22, 2026 at 12:38:22PM +0200, Patrick Steinhardt wrote:\n> The Git project is not exactly the easiest project to get started in:\n> it's written in C and POSIX shell, with bits of Perl, Rust and other\n> languages sprinkled into it. On top of that, the project has grown\n> somewhat organically over time, making the codebase hard to navigate.\n> \n> These are problems that we're aware of, and there have been and still\n> are efforts to clean up some of the technical debt that is natural to\n> exist an a project that is more than 20 years old. Furthermore, we\n> provide resources to newcomers that help them out like our coding\n> guidelines, code of conduct or \"MyFirstContribution.adoc\".\n> \n> But there is a rather practical problem: finding your way around in our\n> project's tree is not easy. Doing a directory listing in the top-level\n> directory will present you with more than 550 files, which makes it\n> extremely hard for a newcomer to figure out what files they are even\n> supposed to look at. This makes the onboarding experience somewhat\n> harder than it really needs to be. This isn't only a problem for\n> newcomers though, as I myself struggle to find the files I am looking\n> for because of the sheer number of files.\n> \n> Besides the problem of discoverability it also creates a problem of\n> structure. It is not obvious at all which files are part of \"libgit.a\"\n> and which files are only linked into our final executables. So while we\n> have this split in our build systems, that split is not evident at all\n> in our tree.\n> \n> Introduce a new \"lib/\" directory and move all of our sources for\n> \"libgit.a\" into it to fix these issues. It makes the split we have\n> evident and reduces the number of files in our top-level tree from 550\n> files to ~80 files.\n> \n> This is still a lot of files, but it's significantly easier to navigate\n> already. Furthermore, we can further iterate after this step and think\n> about introducing a better structure for remaining files, as well.\n\nPlease also discuss the drawbacks of this proposal, and try to argue\nconvincingly that the benefits outweigh the drawbacks.\n\nI, for one, see myself being rather annoyed by regular 'git log\nlib/foo.c' stopping at the rename barrier, and by the limitations of\n'--follow'.\n\nIn my opinion this patch just trades one annoyance to an other, and,\ntherefore, it's not worth the churn.\n\n"},{"id":"546824","messageId":"akS5oKGnbbimA5vy@pks.im","threadId":"65493","inReplyTo":"32bb1cf6-1e37-dc0c-dfb2-e78a30763342@gmx.de","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-07-01T06:54:24Z","receivedAt":"2026-07-01T06:54:35Z","isPatch":true,"body":"On Fri, Jun 26, 2026 at 06:01:49PM +0200, Johannes Schindelin wrote:\n> Hi Patrick,\n> \n> On Mon, 22 Jun 2026, Patrick Steinhardt wrote:\n> \n> > diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> > index cf341d74db..a8402babd9 100644\n> > --- a/.github/workflows/main.yml\n> > +++ b/.github/workflows/main.yml\n> > @@ -179,7 +179,7 @@ jobs:\n> >        uses: actions/checkout@v6\n> >        with:\n> >          repository: 'microsoft/vcpkg'\n> > -        path: 'compat/vcbuild/vcpkg'\n> > +        path: 'lib/compat/vcbuild/vcpkg'\n> >      - name: download vcpkg artifacts\n> >        uses: git-for-windows/get-azure-pipelines-artifact@v0\n> >        with:\n> \n> Please also adopt:\n\nThanks, will do!\n\nPatrick\n"},{"id":"546825","messageId":"akS51xJSP4tkP_pS@pks.im","threadId":"65493","inReplyTo":"aj9wcFEb6oCRnfn2@szeder.dev","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-07-01T06:55:19Z","receivedAt":"2026-07-01T06:55:25Z","isPatch":true,"body":"On Sat, Jun 27, 2026 at 08:40:48AM +0200, SZEDER Gábor wrote:\n> On Mon, Jun 22, 2026 at 12:38:22PM +0200, Patrick Steinhardt wrote:\n> > The Git project is not exactly the easiest project to get started in:\n> > it's written in C and POSIX shell, with bits of Perl, Rust and other\n> > languages sprinkled into it. On top of that, the project has grown\n> > somewhat organically over time, making the codebase hard to navigate.\n> > \n> > These are problems that we're aware of, and there have been and still\n> > are efforts to clean up some of the technical debt that is natural to\n> > exist an a project that is more than 20 years old. Furthermore, we\n> > provide resources to newcomers that help them out like our coding\n> > guidelines, code of conduct or \"MyFirstContribution.adoc\".\n> > \n> > But there is a rather practical problem: finding your way around in our\n> > project's tree is not easy. Doing a directory listing in the top-level\n> > directory will present you with more than 550 files, which makes it\n> > extremely hard for a newcomer to figure out what files they are even\n> > supposed to look at. This makes the onboarding experience somewhat\n> > harder than it really needs to be. This isn't only a problem for\n> > newcomers though, as I myself struggle to find the files I am looking\n> > for because of the sheer number of files.\n> > \n> > Besides the problem of discoverability it also creates a problem of\n> > structure. It is not obvious at all which files are part of \"libgit.a\"\n> > and which files are only linked into our final executables. So while we\n> > have this split in our build systems, that split is not evident at all\n> > in our tree.\n> > \n> > Introduce a new \"lib/\" directory and move all of our sources for\n> > \"libgit.a\" into it to fix these issues. It makes the split we have\n> > evident and reduces the number of files in our top-level tree from 550\n> > files to ~80 files.\n> > \n> > This is still a lot of files, but it's significantly easier to navigate\n> > already. Furthermore, we can further iterate after this step and think\n> > about introducing a better structure for remaining files, as well.\n> \n> Please also discuss the drawbacks of this proposal, and try to argue\n> convincingly that the benefits outweigh the drawbacks.\n\nThis is overall a subjective change, so there is no \"right\" or \"wrong\".\nThe reason why I think the pain is ultimately worth it is that it's a\none-time cost for a permanent improvement in discoverability. And that\nimprovement is especially helpful for newcomers, who already have a hard\ntime navigating the code base.\n\n> I, for one, see myself being rather annoyed by regular 'git log\n> lib/foo.c' stopping at the rename barrier, and by the limitations of\n> '--follow'.\n\nRight. As mentioned in a parallel subthread, I think this is a\ndeficiency in Git itself which we are in the best position to fix. If it\nis proving to be painful, then it might even help to subject ourselves\nto the same pain that other projects that do larger renames experience.\nSo it might motivate us to improve this area.\n\nIn any case, I'll amend these thoughts to the commit message, thanks!\n\nPatrick\n"},{"id":"546897","messageId":"cbbb08fc-fd4d-45ef-927b-05ac44602ff1@gmail.com","threadId":"65493","inReplyTo":"akS51xJSP4tkP_pS@pks.im","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Phillip Wood","fromEmail":"phillip.wood123@gmail.com","sentAt":"2026-07-01T13:26:59Z","receivedAt":"2026-07-01T13:27:02Z","isPatch":true,"body":"Hi Patrick\n\nOn 01/07/2026 07:55, Patrick Steinhardt wrote:\n> On Sat, Jun 27, 2026 at 08:40:48AM +0200, SZEDER Gábor wrote:\n>> On Mon, Jun 22, 2026 at 12:38:22PM +0200, Patrick Steinhardt wrote:\n>>> The Git project is not exactly the easiest project to get started in:\n>>> it's written in C and POSIX shell, with bits of Perl, Rust and other\n>>> languages sprinkled into it. On top of that, the project has grown\n>>> somewhat organically over time, making the codebase hard to navigate.\n>>>\n>>> These are problems that we're aware of, and there have been and still\n>>> are efforts to clean up some of the technical debt that is natural to\n>>> exist an a project that is more than 20 years old. Furthermore, we\n>>> provide resources to newcomers that help them out like our coding\n>>> guidelines, code of conduct or \"MyFirstContribution.adoc\".\n>>>\n>>> But there is a rather practical problem: finding your way around in our\n>>> project's tree is not easy. Doing a directory listing in the top-level\n>>> directory will present you with more than 550 files, which makes it\n>>> extremely hard for a newcomer to figure out what files they are even\n>>> supposed to look at. This makes the onboarding experience somewhat\n>>> harder than it really needs to be. This isn't only a problem for\n>>> newcomers though, as I myself struggle to find the files I am looking\n>>> for because of the sheer number of files.\n>>>\n>>> Besides the problem of discoverability it also creates a problem of\n>>> structure. It is not obvious at all which files are part of \"libgit.a\"\n>>> and which files are only linked into our final executables. So while we\n>>> have this split in our build systems, that split is not evident at all\n>>> in our tree.\n>>>\n>>> Introduce a new \"lib/\" directory and move all of our sources for\n>>> \"libgit.a\" into it to fix these issues. It makes the split we have\n>>> evident and reduces the number of files in our top-level tree from 550\n>>> files to ~80 files.\n>>>\n>>> This is still a lot of files, but it's significantly easier to navigate\n>>> already. Furthermore, we can further iterate after this step and think\n>>> about introducing a better structure for remaining files, as well.\n>>\n>> Please also discuss the drawbacks of this proposal, and try to argue\n>> convincingly that the benefits outweigh the drawbacks.\n> \n> This is overall a subjective change, so there is no \"right\" or \"wrong\".\n> The reason why I think the pain is ultimately worth it is that it's a\n> one-time cost for a permanent improvement in discoverability. And that\n> improvement is especially helpful for newcomers, who already have a hard\n> time navigating the code base.\n\nAs I said last time this came up, I don't really buy the discoverability \nargument because there are just as many files to trawl through to find \nwhat you're looking through and now there is an extra directory to \ncheck. I think the solution to that is to recommend folks use \"git grep\" \nor ctags etc. not moving code to a new directory.\n\nI do however think putting all the library code in a subdirectory makes \nit easier to say things like \"please try to avoid new uses of \n'the_repository' and prefer 'error()' over 'die()' in library code\" \nbecause all the library code is in the same directory. I think that is a \nmuch stronger selling point.\n\n>> I, for one, see myself being rather annoyed by regular 'git log\n>> lib/foo.c' stopping at the rename barrier, and by the limitations of\n>> '--follow'.\n> \n> Right. As mentioned in a parallel subthread, I think this is a\n> deficiency in Git itself which we are in the best position to fix. If it\n> is proving to be painful, then it might even help to subject ourselves\n> to the same pain that other projects that do larger renames experience.\n> So it might motivate us to improve this area.\n\nAnother cost is remembering things have moved - the other day I spent \ntoo long wondering why \"git show origin/seen:wt-status.c\" wasn't working \nuntil I ran \"git log origin/seen\" and realized it had move to \nlib/wt-status.c.\n\nThanks\n\nPhillip\n\n> In any case, I'll amend these thoughts to the commit message, thanks!\n> \n> Patrick\n\n"},{"id":"546906","messageId":"xmqq1pdmrcp6.fsf@gitster.g","threadId":"65493","inReplyTo":"cbbb08fc-fd4d-45ef-927b-05ac44602ff1@gmail.com","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-07-01T14:45:09Z","receivedAt":"2026-07-01T14:45:12Z","isPatch":true,"body":"Phillip Wood <phillip.wood123@gmail.com> writes:\n\n> As I said last time this came up, I don't really buy the discoverability \n> argument because there are just as many files to trawl through to find \n> what you're looking through and now there is an extra directory to \n> check. I think the solution to that is to recommend folks use \"git grep\" \n> or ctags etc. not moving code to a new directory.\n\nHear, hear.  Also it would be great if we can trick some talented\ntechnical writer into writing the \"map\" of the source so that by\nreading this one or two pager, any new person with reasonable\ncompetence will know how things are partitioned into pieces and how\nthese pieces fit together.  I wonder how good LLMs are these days?\n;-)\n\n> I do however think putting all the library code in a subdirectory makes \n> it easier to say things like \"please try to avoid new uses of \n> 'the_repository' and prefer 'error()' over 'die()' in library code\" \n> because all the library code is in the same directory. I think that is a \n> much stronger selling point.\n\nYes.  \"library code (things outside the subdirectories) should not\nuse X\" would work just fine, though.\n\n> Another cost is remembering things have moved - the other day I spent \n> too long wondering why \"git show origin/seen:wt-status.c\" wasn't working \n> until I ran \"git log origin/seen\" and realized it had move to \n> lib/wt-status.c.\n\nYes, this has bit me multiple dozen times, as the tip of 'seen' is\ncontaminated with this rename, already.  It is a huge pain.\n"},{"id":"546956","messageId":"akX1TMoRr87Id8Ss@pks.im","threadId":"65493","inReplyTo":"xmqq1pdmrcp6.fsf@gitster.g","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-07-02T05:21:16Z","receivedAt":"2026-07-02T05:21:29Z","isPatch":true,"body":"On Wed, Jul 01, 2026 at 07:45:09AM -0700, Junio C Hamano wrote:\n> Phillip Wood <phillip.wood123@gmail.com> writes:\n> \n> > As I said last time this came up, I don't really buy the discoverability \n> > argument because there are just as many files to trawl through to find \n> > what you're looking through and now there is an extra directory to \n> > check. I think the solution to that is to recommend folks use \"git grep\" \n> > or ctags etc. not moving code to a new directory.\n> \n> Hear, hear.  Also it would be great if we can trick some talented\n> technical writer into writing the \"map\" of the source so that by\n> reading this one or two pager, any new person with reasonable\n> competence will know how things are partitioned into pieces and how\n> these pieces fit together.  I wonder how good LLMs are these days?\n> ;-)\n\nThis isn't about discoverability of the library files though, I\nspecifically want to improve discoverability of all the other files that\nwe have in our root directory. So yes, I fully agree that this change\ndoes not help to make that one file that is part of our library easier\nto find.\n\n> > I do however think putting all the library code in a subdirectory makes \n> > it easier to say things like \"please try to avoid new uses of \n> > 'the_repository' and prefer 'error()' over 'die()' in library code\" \n> > because all the library code is in the same directory. I think that is a \n> > much stronger selling point.\n> \n> Yes.  \"library code (things outside the subdirectories) should not\n> use X\" would work just fine, though.\n\nThat rule doesn't quite work:\n\n  - We have several C files that are not library files and that are in\n    the top-level directory. For example \"scalar.c\" or \"shell.c\".\n\n  - We have several C files that are part of the library and that are in\n    a subdirectory. For example \"compat/\", \"refs/\", \"odb/\".\n\nSo having this properly cleaned up would help to have clear indicators\nwhat component a given file belongs to.\n\n> > Another cost is remembering things have moved - the other day I spent \n> > too long wondering why \"git show origin/seen:wt-status.c\" wasn't working \n> > until I ran \"git log origin/seen\" and realized it had move to \n> > lib/wt-status.c.\n> \n> Yes, this has bit me multiple dozen times, as the tip of 'seen' is\n> contaminated with this rename, already.  It is a huge pain.\n\nYeah, this one I don't have any arguments against besides a very\nhand-wavy \"it'll get better over time\" :)\n\nThanks!\n\nPatrick\n"},{"id":"547176","messageId":"7d00e3e0-27f7-4d54-8985-ba7b670efcfb@gmail.com","threadId":"65493","inReplyTo":"akX1TMoRr87Id8Ss@pks.im","subject":"Re: [PATCH RFC v2 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Kaartic Sivaraam","fromEmail":"kaartic.sivaraam@gmail.com","sentAt":"2026-07-06T04:29:18Z","receivedAt":"2026-07-06T04:29:26Z","isPatch":true,"body":"On 02/07/26 10:51, Patrick Steinhardt wrote:\n> On Wed, Jul 01, 2026 at 07:45:09AM -0700, Junio C Hamano wrote:\n>> Phillip Wood <phillip.wood123@gmail.com> writes:\n>> \n>>> Another cost is remembering things have moved - the other day I spent\n>>> too long wondering why \"git show origin/seen:wt-status.c\" wasn't working\n>>> until I ran \"git log origin/seen\" and realized it had move to\n>>> lib/wt-status.c.\n>>\n>> Yes, this has bit me multiple dozen times, as the tip of 'seen' is\n>> contaminated with this rename, already.  It is a huge pain.\n> \n> Yeah, this one I don't have any arguments against besides a very\n> hand-wavy \"it'll get better over time\" :)\n>\n\nOn a bit of a tangent, this made me wonder if it would be helpful to \nmake a potential improvement to 'git show' UX that shows a hint that the \nfile asked to be shown was moved as part of a recent rename.\n\nSomething like:\n\n   $ git show origin/seen:wt-status.c\n   fatal: path 'wt-status.c' does not exist in 'origin/seen'\n   hint: 'wt-status.c' appears to have been renamed to \n'builtin/wt-status.c' in 'origin/seen'\n   hint: Did you mean 'origin/seen:builtin/wt-status.c'?\n   hint: Disable this message with \"git config advice.objectNameWarning \nfalse\"\n\nFinding rename just to show a hint sounds a bit too much work for a \nhint. I wonder if it would worth given the better UX, though.\n\n--\nSivaraam\n\n"},{"id":"547942","messageId":"20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im","threadId":"65493","inReplyTo":"20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im","subject":"[PATCH RFC v4 0/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-07-13T05:50:14Z","receivedAt":"2026-07-13T05:50:32Z","isPatch":true,"body":"Hi,\n\nthis small patch series follows up on a discussion we had two years ago\nduring the Git Contributor's Summit in Berlin.\n\nI'm fully aware that this will likely result in some discussion, which\nis why I have labelled this as RFC. I'd be fine with a result of \"let's\nnot do it\" if we cannot agree on this step, but I think that the current\nlayout hurts discoverability quite a bit. Not only for newcomers, but\nI'm also struggling with it quite frequently.\n\nI also intentionally decided to send this close to the upcoming release\nso that the series can be merged early in the next release cycle if we\nwere to agree on it.\n\nI've tested this patch series with both GitLab [1] and GitHub [2].\n\nChanges in v4:\n  - Squash in Ramsay's patch posted in\n    https://patch.msgid.link/94e744f1-12b1-4ba4-8f9b-266c1642b5ff@ramsayjones.plus.com.\n  - Link to v3: https://patch.msgid.link/20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im\n\nChanges in v3:\n  - Explicitly point out the downsides of doing this mass-rename. Please\n    let me know in case any arguments are missing there.\n  - Apply Dscho's fixup patch.\n  - Link to v2: https://patch.msgid.link/20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im\n\nChanges in v2:\n  - Feedback on v1 was generally positive, and we're close to the next\n    release again. So I've decided to rebase the patch series and send\n    v2 out before the quiet pre-release phase kicks off. The series is\n    thus built on top of 8d96f09e92 (Merge branch\n    'js/objects-larger-than-4gb-on-windows', 2026-06-19) with\n    ps/odb-source-packed at 1bba3c035d (odb/source-packed: drop pointer\n    to \"files\" parent source, 2026-06-17) merged into it.\n  - Fix a couple of instances I missed to update in Meson.\n  - Link to v1: https://patch.msgid.link/20260416-pks-libgit-in-subdir-v1-0-03afc731df55@pks.im\n\nThanks!\n\nPatrick\n\n[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/544\n[2]: https://github.com/git/git/pull/2271\n\n---\nPatrick Steinhardt (2):\n      t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n      Move libgit.a sources into separate \"lib/\" directory\n\n .github/workflows/main.yml                         |   9 +-\n .gitmodules                                        |   2 +-\n Documentation/Makefile                             |   4 +-\n Makefile                                           | 766 ++++++++++-----------\n config.mak.uname                                   |  52 +-\n contrib/buildsystems/CMakeLists.txt                |  95 +--\n git.rc.in                                          |   2 +-\n abspath.c => lib/abspath.c                         |   0\n abspath.h => lib/abspath.h                         |   0\n add-interactive.c => lib/add-interactive.c         |   0\n add-interactive.h => lib/add-interactive.h         |   0\n add-patch.c => lib/add-patch.c                     |   0\n add-patch.h => lib/add-patch.h                     |   0\n advice.c => lib/advice.c                           |   0\n advice.h => lib/advice.h                           |   0\n alias.c => lib/alias.c                             |   0\n alias.h => lib/alias.h                             |   0\n alloc.c => lib/alloc.c                             |   0\n alloc.h => lib/alloc.h                             |   0\n apply.c => lib/apply.c                             |   0\n apply.h => lib/apply.h                             |   0\n archive-tar.c => lib/archive-tar.c                 |   0\n archive-zip.c => lib/archive-zip.c                 |   0\n archive.c => lib/archive.c                         |   0\n archive.h => lib/archive.h                         |   0\n attr.c => lib/attr.c                               |   0\n attr.h => lib/attr.h                               |   0\n banned.h => lib/banned.h                           |   0\n base85.c => lib/base85.c                           |   0\n base85.h => lib/base85.h                           |   0\n bisect.c => lib/bisect.c                           |   0\n bisect.h => lib/bisect.h                           |   0\n blame.c => lib/blame.c                             |   0\n blame.h => lib/blame.h                             |   0\n blob.c => lib/blob.c                               |   0\n blob.h => lib/blob.h                               |   0\n {block-sha1 => lib/block-sha1}/sha1.c              |   0\n {block-sha1 => lib/block-sha1}/sha1.h              |   0\n bloom.c => lib/bloom.c                             |   0\n bloom.h => lib/bloom.h                             |   0\n branch.c => lib/branch.c                           |   0\n branch.h => lib/branch.h                           |   0\n builtin.h => lib/builtin.h                         |   0\n bundle-uri.c => lib/bundle-uri.c                   |   0\n bundle-uri.h => lib/bundle-uri.h                   |   0\n bundle.c => lib/bundle.c                           |   0\n bundle.h => lib/bundle.h                           |   0\n cache-tree.c => lib/cache-tree.c                   |   0\n cache-tree.h => lib/cache-tree.h                   |   0\n cbtree.c => lib/cbtree.c                           |   0\n cbtree.h => lib/cbtree.h                           |   0\n chdir-notify.c => lib/chdir-notify.c               |   0\n chdir-notify.h => lib/chdir-notify.h               |   0\n checkout.c => lib/checkout.c                       |   0\n checkout.h => lib/checkout.h                       |   0\n chunk-format.c => lib/chunk-format.c               |   0\n chunk-format.h => lib/chunk-format.h               |   0\n color.c => lib/color.c                             |   0\n color.h => lib/color.h                             |   0\n column.c => lib/column.c                           |   0\n column.h => lib/column.h                           |   0\n combine-diff.c => lib/combine-diff.c               |   0\n commit-graph.c => lib/commit-graph.c               |   0\n commit-graph.h => lib/commit-graph.h               |   0\n commit-reach.c => lib/commit-reach.c               |   0\n commit-reach.h => lib/commit-reach.h               |   0\n commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n commit-slab.h => lib/commit-slab.h                 |   0\n commit.c => lib/commit.c                           |   0\n commit.h => lib/commit.h                           |   0\n common-exit.c => lib/common-exit.c                 |   0\n common-init.c => lib/common-init.c                 |   0\n common-init.h => lib/common-init.h                 |   0\n {compat => lib/compat}/.gitattributes              |   0\n {compat => lib/compat}/access.c                    |   0\n {compat => lib/compat}/apple-common-crypto.h       |   0\n {compat => lib/compat}/basename.c                  |   0\n {compat => lib/compat}/bswap.h                     |   0\n {compat => lib/compat}/compiler.h                  |   0\n {compat => lib/compat}/darwin/procinfo.c           |   0\n {compat => lib/compat}/disk.h                      |   0\n {compat => lib/compat}/fileno.c                    |   0\n {compat => lib/compat}/fopen.c                     |   0\n {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n .../compat}/fsmonitor/fsm-health-linux.c           |   0\n .../compat}/fsmonitor/fsm-health-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-unix.c    |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n .../compat}/fsmonitor/fsm-listen-linux.c           |   0\n .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n .../compat}/fsmonitor/fsm-path-utils-linux.c       |   0\n .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n .../compat}/fsmonitor/fsm-settings-unix.c          |   0\n .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n {compat => lib/compat}/hstrerror.c                 |   0\n {compat => lib/compat}/inet_ntop.c                 |   0\n {compat => lib/compat}/inet_pton.c                 |   0\n {compat => lib/compat}/linux/procinfo.c            |   0\n {compat => lib/compat}/memmem.c                    |   0\n {compat => lib/compat}/mingw-posix.h               |   0\n {compat => lib/compat}/mingw.c                     |   0\n {compat => lib/compat}/mingw.h                     |   0\n {compat => lib/compat}/mkdir.c                     |   0\n {compat => lib/compat}/mmap.c                      |   0\n {compat => lib/compat}/msvc-posix.h                |   0\n {compat => lib/compat}/msvc.c                      |   0\n {compat => lib/compat}/msvc.h                      |   0\n {compat => lib/compat}/nonblock.c                  |   0\n {compat => lib/compat}/nonblock.h                  |   0\n {compat => lib/compat}/obstack.c                   |   0\n {compat => lib/compat}/obstack.h                   |   0\n {compat => lib/compat}/open.c                      |   0\n {compat => lib/compat}/poll/poll.c                 |   0\n {compat => lib/compat}/poll/poll.h                 |   0\n {compat => lib/compat}/posix.h                     |   0\n {compat => lib/compat}/pread.c                     |   0\n {compat => lib/compat}/precompose_utf8.c           |   0\n {compat => lib/compat}/precompose_utf8.h           |   0\n {compat => lib/compat}/qsort_s.c                   |   0\n {compat => lib/compat}/regcomp_enhanced.c          |   0\n {compat => lib/compat}/regex/regcomp.c             |   0\n {compat => lib/compat}/regex/regex.c               |   0\n {compat => lib/compat}/regex/regex.h               |   0\n {compat => lib/compat}/regex/regex_internal.c      |   0\n {compat => lib/compat}/regex/regex_internal.h      |   0\n {compat => lib/compat}/regex/regexec.c             |   0\n {compat => lib/compat}/setenv.c                    |   0\n {compat => lib/compat}/sha1-chunked.c              |   0\n {compat => lib/compat}/sha1-chunked.h              |   0\n {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n {compat => lib/compat}/snprintf.c                  |   0\n {compat => lib/compat}/stat.c                      |   0\n {compat => lib/compat}/strcasestr.c                |   0\n {compat => lib/compat}/strdup.c                    |   0\n {compat => lib/compat}/strlcpy.c                   |   0\n {compat => lib/compat}/strtoimax.c                 |   0\n {compat => lib/compat}/strtoumax.c                 |   0\n {compat => lib/compat}/stub/procinfo.c             |   0\n {compat => lib/compat}/terminal.c                  |   0\n {compat => lib/compat}/terminal.h                  |   0\n {compat => lib/compat}/unsetenv.c                  |   0\n {compat => lib/compat}/vcbuild/.gitignore          |   0\n {compat => lib/compat}/vcbuild/README              |  10 +-\n {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n {compat => lib/compat}/vcbuild/include/utime.h     |   0\n {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n {compat => lib/compat}/win32.h                     |   0\n {compat => lib/compat}/win32/alloca.h              |   0\n {compat => lib/compat}/win32/dirent.c              |   0\n {compat => lib/compat}/win32/dirent.h              |   0\n {compat => lib/compat}/win32/exit-process.h        |   0\n {compat => lib/compat}/win32/flush.c               |   0\n {compat => lib/compat}/win32/git.manifest          |   0\n {compat => lib/compat}/win32/headless.c            |   0\n {compat => lib/compat}/win32/lazyload.h            |   0\n {compat => lib/compat}/win32/path-utils.c          |   0\n {compat => lib/compat}/win32/path-utils.h          |   0\n {compat => lib/compat}/win32/pthread.c             |   0\n {compat => lib/compat}/win32/pthread.h             |   0\n {compat => lib/compat}/win32/syslog.c              |   0\n {compat => lib/compat}/win32/syslog.h              |   0\n .../compat}/win32/trace2_win32_process_info.c      |   0\n {compat => lib/compat}/win32mmap.c                 |   0\n {compat => lib/compat}/winansi.c                   |   0\n {compat => lib/compat}/zlib-compat.h               |   0\n .../compiler-tricks}/not-constant.c                |   0\n config.c => lib/config.c                           |   0\n config.h => lib/config.h                           |   0\n connect.c => lib/connect.c                         |   0\n connect.h => lib/connect.h                         |   0\n connected.c => lib/connected.c                     |   0\n connected.h => lib/connected.h                     |   0\n convert.c => lib/convert.c                         |   0\n convert.h => lib/convert.h                         |   0\n copy.c => lib/copy.c                               |   0\n copy.h => lib/copy.h                               |   0\n credential.c => lib/credential.c                   |   0\n credential.h => lib/credential.h                   |   0\n csum-file.c => lib/csum-file.c                     |   0\n csum-file.h => lib/csum-file.h                     |   0\n ctype.c => lib/ctype.c                             |   0\n date.c => lib/date.c                               |   0\n date.h => lib/date.h                               |   0\n decorate.c => lib/decorate.c                       |   0\n decorate.h => lib/decorate.h                       |   0\n delta-islands.c => lib/delta-islands.c             |   0\n delta-islands.h => lib/delta-islands.h             |   0\n delta.h => lib/delta.h                             |   0\n diagnose.c => lib/diagnose.c                       |   0\n diagnose.h => lib/diagnose.h                       |   0\n diff-delta.c => lib/diff-delta.c                   |   0\n diff-lib.c => lib/diff-lib.c                       |   0\n diff-merges.c => lib/diff-merges.c                 |   0\n diff-merges.h => lib/diff-merges.h                 |   0\n diff-no-index.c => lib/diff-no-index.c             |   0\n diff.c => lib/diff.c                               |   0\n diff.h => lib/diff.h                               |   0\n diffcore-break.c => lib/diffcore-break.c           |   0\n diffcore-delta.c => lib/diffcore-delta.c           |   0\n diffcore-order.c => lib/diffcore-order.c           |   0\n diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n diffcore-rename.c => lib/diffcore-rename.c         |   0\n diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n diffcore.h => lib/diffcore.h                       |   0\n dir-iterator.c => lib/dir-iterator.c               |   0\n dir-iterator.h => lib/dir-iterator.h               |   0\n dir.c => lib/dir.c                                 |   0\n dir.h => lib/dir.h                                 |   0\n editor.c => lib/editor.c                           |   0\n editor.h => lib/editor.h                           |   0\n entry.c => lib/entry.c                             |   0\n entry.h => lib/entry.h                             |   0\n environment.c => lib/environment.c                 |   0\n environment.h => lib/environment.h                 |   0\n {ewah => lib/ewah}/bitmap.c                        |   0\n {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n {ewah => lib/ewah}/ewah_io.c                       |   0\n {ewah => lib/ewah}/ewah_rlw.c                      |   0\n {ewah => lib/ewah}/ewok.h                          |   0\n {ewah => lib/ewah}/ewok_rlw.h                      |   0\n exec-cmd.c => lib/exec-cmd.c                       |   0\n exec-cmd.h => lib/exec-cmd.h                       |   0\n fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n fetch-pack.c => lib/fetch-pack.c                   |   0\n fetch-pack.h => lib/fetch-pack.h                   |   0\n fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n for-each-ref.h => lib/for-each-ref.h               |   0\n fsck.c => lib/fsck.c                               |   0\n fsck.h => lib/fsck.h                               |   0\n fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n .../fsmonitor-path-utils.h                         |   0\n fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n fsmonitor.c => lib/fsmonitor.c                     |   0\n fsmonitor.h => lib/fsmonitor.h                     |   0\n gettext.c => lib/gettext.c                         |   0\n gettext.h => lib/gettext.h                         |   0\n git-compat-util.h => lib/git-compat-util.h         |   0\n git-curl-compat.h => lib/git-curl-compat.h         |   0\n git-zlib.c => lib/git-zlib.c                       |   0\n git-zlib.h => lib/git-zlib.h                       |   0\n gpg-interface.c => lib/gpg-interface.c             |   0\n gpg-interface.h => lib/gpg-interface.h             |   0\n graph.c => lib/graph.c                             |   0\n graph.h => lib/graph.h                             |   0\n grep.c => lib/grep.c                               |   0\n grep.h => lib/grep.h                               |   0\n hash-lookup.c => lib/hash-lookup.c                 |   0\n hash-lookup.h => lib/hash-lookup.h                 |   0\n hash.c => lib/hash.c                               |   0\n hash.h => lib/hash.h                               |   0\n hashmap.c => lib/hashmap.c                         |   0\n hashmap.h => lib/hashmap.h                         |   0\n help.c => lib/help.c                               |   0\n help.h => lib/help.h                               |   0\n hex-ll.c => lib/hex-ll.c                           |   0\n hex-ll.h => lib/hex-ll.h                           |   0\n hex.c => lib/hex.c                                 |   0\n hex.h => lib/hex.h                                 |   0\n hook.c => lib/hook.c                               |   0\n hook.h => lib/hook.h                               |   0\n http-walker.c => lib/http-walker.c                 |   0\n http.c => lib/http.c                               |   0\n http.h => lib/http.h                               |   0\n ident.c => lib/ident.c                             |   0\n ident.h => lib/ident.h                             |   0\n iterator.h => lib/iterator.h                       |   0\n json-writer.c => lib/json-writer.c                 |   0\n json-writer.h => lib/json-writer.h                 |   0\n khash.h => lib/khash.h                             |   0\n kwset.c => lib/kwset.c                             |   0\n kwset.h => lib/kwset.h                             |   0\n levenshtein.c => lib/levenshtein.c                 |   0\n levenshtein.h => lib/levenshtein.h                 |   0\n line-log.c => lib/line-log.c                       |   0\n line-log.h => lib/line-log.h                       |   0\n line-range.c => lib/line-range.c                   |   0\n line-range.h => lib/line-range.h                   |   0\n linear-assignment.c => lib/linear-assignment.c     |   0\n linear-assignment.h => lib/linear-assignment.h     |   0\n .../list-objects-filter-options.c                  |   0\n .../list-objects-filter-options.h                  |   0\n list-objects-filter.c => lib/list-objects-filter.c |   0\n list-objects-filter.h => lib/list-objects-filter.h |   0\n list-objects.c => lib/list-objects.c               |   0\n list-objects.h => lib/list-objects.h               |   0\n list.h => lib/list.h                               |   0\n lockfile.c => lib/lockfile.c                       |   0\n lockfile.h => lib/lockfile.h                       |   0\n log-tree.c => lib/log-tree.c                       |   0\n log-tree.h => lib/log-tree.h                       |   0\n loose.c => lib/loose.c                             |   0\n loose.h => lib/loose.h                             |   0\n ls-refs.c => lib/ls-refs.c                         |   0\n ls-refs.h => lib/ls-refs.h                         |   0\n mailinfo.c => lib/mailinfo.c                       |   0\n mailinfo.h => lib/mailinfo.h                       |   0\n mailmap.c => lib/mailmap.c                         |   0\n mailmap.h => lib/mailmap.h                         |   0\n match-trees.c => lib/match-trees.c                 |   0\n match-trees.h => lib/match-trees.h                 |   0\n mem-pool.c => lib/mem-pool.c                       |   0\n mem-pool.h => lib/mem-pool.h                       |   0\n merge-blobs.c => lib/merge-blobs.c                 |   0\n merge-blobs.h => lib/merge-blobs.h                 |   0\n merge-ll.c => lib/merge-ll.c                       |   0\n merge-ll.h => lib/merge-ll.h                       |   0\n merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n merge-ort.c => lib/merge-ort.c                     |   0\n merge-ort.h => lib/merge-ort.h                     |   0\n merge.c => lib/merge.c                             |   0\n merge.h => lib/merge.h                             |   0\n mergesort.h => lib/mergesort.h                     |   0\n midx-write.c => lib/midx-write.c                   |   0\n midx.c => lib/midx.c                               |   0\n midx.h => lib/midx.h                               |   0\n name-hash.c => lib/name-hash.c                     |   0\n name-hash.h => lib/name-hash.h                     |   0\n {negotiator => lib/negotiator}/default.c           |   0\n {negotiator => lib/negotiator}/default.h           |   0\n {negotiator => lib/negotiator}/noop.c              |   0\n {negotiator => lib/negotiator}/noop.h              |   0\n {negotiator => lib/negotiator}/skipping.c          |   0\n {negotiator => lib/negotiator}/skipping.h          |   0\n notes-cache.c => lib/notes-cache.c                 |   0\n notes-cache.h => lib/notes-cache.h                 |   0\n notes-merge.c => lib/notes-merge.c                 |   0\n notes-merge.h => lib/notes-merge.h                 |   0\n notes-utils.c => lib/notes-utils.c                 |   0\n notes-utils.h => lib/notes-utils.h                 |   0\n notes.c => lib/notes.c                             |   0\n notes.h => lib/notes.h                             |   0\n object-file-convert.c => lib/object-file-convert.c |   0\n object-file-convert.h => lib/object-file-convert.h |   0\n object-file.c => lib/object-file.c                 |   0\n object-file.h => lib/object-file.h                 |   0\n object-name.c => lib/object-name.c                 |   0\n object-name.h => lib/object-name.h                 |   0\n object.c => lib/object.c                           |   0\n object.h => lib/object.h                           |   0\n odb.c => lib/odb.c                                 |   0\n odb.h => lib/odb.h                                 |   0\n {odb => lib/odb}/source-files.c                    |   0\n {odb => lib/odb}/source-files.h                    |   0\n {odb => lib/odb}/source-inmemory.c                 |   0\n {odb => lib/odb}/source-inmemory.h                 |   0\n {odb => lib/odb}/source-loose.c                    |   0\n {odb => lib/odb}/source-loose.h                    |   0\n {odb => lib/odb}/source-packed.c                   |   0\n {odb => lib/odb}/source-packed.h                   |   0\n {odb => lib/odb}/source.c                          |   0\n {odb => lib/odb}/source.h                          |   0\n {odb => lib/odb}/streaming.c                       |   0\n {odb => lib/odb}/streaming.h                       |   0\n {odb => lib/odb}/transaction.c                     |   0\n {odb => lib/odb}/transaction.h                     |   0\n oid-array.c => lib/oid-array.c                     |   0\n oid-array.h => lib/oid-array.h                     |   0\n oidmap.c => lib/oidmap.c                           |   0\n oidmap.h => lib/oidmap.h                           |   0\n oidset.c => lib/oidset.c                           |   0\n oidset.h => lib/oidset.h                           |   0\n oidtree.c => lib/oidtree.c                         |   0\n oidtree.h => lib/oidtree.h                         |   0\n pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n pack-bitmap.c => lib/pack-bitmap.c                 |   0\n pack-bitmap.h => lib/pack-bitmap.h                 |   0\n pack-check.c => lib/pack-check.c                   |   0\n pack-mtimes.c => lib/pack-mtimes.c                 |   0\n pack-mtimes.h => lib/pack-mtimes.h                 |   0\n pack-objects.c => lib/pack-objects.c               |   0\n pack-objects.h => lib/pack-objects.h               |   0\n pack-refs.c => lib/pack-refs.c                     |   0\n pack-refs.h => lib/pack-refs.h                     |   0\n pack-revindex.c => lib/pack-revindex.c             |   0\n pack-revindex.h => lib/pack-revindex.h             |   0\n pack-write.c => lib/pack-write.c                   |   0\n pack.h => lib/pack.h                               |   0\n packfile-list.c => lib/packfile-list.c             |   0\n packfile-list.h => lib/packfile-list.h             |   0\n packfile.c => lib/packfile.c                       |   0\n packfile.h => lib/packfile.h                       |   0\n pager.c => lib/pager.c                             |   0\n pager.h => lib/pager.h                             |   0\n parallel-checkout.c => lib/parallel-checkout.c     |   0\n parallel-checkout.h => lib/parallel-checkout.h     |   0\n parse-options-cb.c => lib/parse-options-cb.c       |   0\n parse-options.c => lib/parse-options.c             |   0\n parse-options.h => lib/parse-options.h             |   0\n parse.c => lib/parse.c                             |   0\n parse.h => lib/parse.h                             |   0\n patch-delta.c => lib/patch-delta.c                 |   0\n patch-ids.c => lib/patch-ids.c                     |   0\n patch-ids.h => lib/patch-ids.h                     |   0\n path-walk.c => lib/path-walk.c                     |   0\n path-walk.h => lib/path-walk.h                     |   0\n path.c => lib/path.c                               |   0\n path.h => lib/path.h                               |   0\n pathspec.c => lib/pathspec.c                       |   0\n pathspec.h => lib/pathspec.h                       |   0\n pkt-line.c => lib/pkt-line.c                       |   0\n pkt-line.h => lib/pkt-line.h                       |   0\n preload-index.c => lib/preload-index.c             |   0\n preload-index.h => lib/preload-index.h             |   0\n pretty.c => lib/pretty.c                           |   0\n pretty.h => lib/pretty.h                           |   0\n prio-queue.c => lib/prio-queue.c                   |   0\n prio-queue.h => lib/prio-queue.h                   |   0\n progress.c => lib/progress.c                       |   0\n progress.h => lib/progress.h                       |   0\n promisor-remote.c => lib/promisor-remote.c         |   0\n promisor-remote.h => lib/promisor-remote.h         |   0\n prompt.c => lib/prompt.c                           |   0\n prompt.h => lib/prompt.h                           |   0\n protocol-caps.c => lib/protocol-caps.c             |   0\n protocol-caps.h => lib/protocol-caps.h             |   0\n protocol.c => lib/protocol.c                       |   0\n protocol.h => lib/protocol.h                       |   0\n prune-packed.c => lib/prune-packed.c               |   0\n prune-packed.h => lib/prune-packed.h               |   0\n pseudo-merge.c => lib/pseudo-merge.c               |   0\n pseudo-merge.h => lib/pseudo-merge.h               |   0\n quote.c => lib/quote.c                             |   0\n quote.h => lib/quote.h                             |   0\n range-diff.c => lib/range-diff.c                   |   0\n range-diff.h => lib/range-diff.h                   |   0\n reachable.c => lib/reachable.c                     |   0\n reachable.h => lib/reachable.h                     |   0\n read-cache-ll.h => lib/read-cache-ll.h             |   0\n read-cache.c => lib/read-cache.c                   |   0\n read-cache.h => lib/read-cache.h                   |   0\n rebase-interactive.c => lib/rebase-interactive.c   |   0\n rebase-interactive.h => lib/rebase-interactive.h   |   0\n rebase.c => lib/rebase.c                           |   0\n rebase.h => lib/rebase.h                           |   0\n ref-filter.c => lib/ref-filter.c                   |   0\n ref-filter.h => lib/ref-filter.h                   |   0\n reflog-walk.c => lib/reflog-walk.c                 |   0\n reflog-walk.h => lib/reflog-walk.h                 |   0\n reflog.c => lib/reflog.c                           |   0\n reflog.h => lib/reflog.h                           |   0\n refs.c => lib/refs.c                               |   0\n refs.h => lib/refs.h                               |   0\n {refs => lib/refs}/debug.c                         |   0\n {refs => lib/refs}/files-backend.c                 |   0\n {refs => lib/refs}/iterator.c                      |   0\n {refs => lib/refs}/packed-backend.c                |   0\n {refs => lib/refs}/packed-backend.h                |   0\n {refs => lib/refs}/ref-cache.c                     |   0\n {refs => lib/refs}/ref-cache.h                     |   0\n {refs => lib/refs}/refs-internal.h                 |   0\n {refs => lib/refs}/reftable-backend.c              |   0\n refspec.c => lib/refspec.c                         |   0\n refspec.h => lib/refspec.h                         |   0\n {reftable => lib/reftable}/LICENSE                 |   0\n {reftable => lib/reftable}/basics.c                |   0\n {reftable => lib/reftable}/basics.h                |   0\n {reftable => lib/reftable}/block.c                 |   0\n {reftable => lib/reftable}/block.h                 |   0\n {reftable => lib/reftable}/blocksource.c           |   0\n {reftable => lib/reftable}/blocksource.h           |   0\n {reftable => lib/reftable}/constants.h             |   0\n {reftable => lib/reftable}/error.c                 |   0\n {reftable => lib/reftable}/fsck.c                  |   0\n {reftable => lib/reftable}/iter.c                  |   0\n {reftable => lib/reftable}/iter.h                  |   0\n {reftable => lib/reftable}/merged.c                |   0\n {reftable => lib/reftable}/merged.h                |   0\n {reftable => lib/reftable}/pq.c                    |   0\n {reftable => lib/reftable}/pq.h                    |   0\n {reftable => lib/reftable}/record.c                |   0\n {reftable => lib/reftable}/record.h                |   0\n {reftable => lib/reftable}/reftable-basics.h       |   0\n {reftable => lib/reftable}/reftable-block.h        |   0\n {reftable => lib/reftable}/reftable-blocksource.h  |   0\n {reftable => lib/reftable}/reftable-constants.h    |   0\n {reftable => lib/reftable}/reftable-error.h        |   0\n {reftable => lib/reftable}/reftable-fsck.h         |   0\n {reftable => lib/reftable}/reftable-iterator.h     |   0\n {reftable => lib/reftable}/reftable-merged.h       |   0\n {reftable => lib/reftable}/reftable-record.h       |   0\n {reftable => lib/reftable}/reftable-stack.h        |   0\n {reftable => lib/reftable}/reftable-system.h       |   0\n {reftable => lib/reftable}/reftable-table.h        |   0\n {reftable => lib/reftable}/reftable-writer.h       |   0\n {reftable => lib/reftable}/stack.c                 |   0\n {reftable => lib/reftable}/stack.h                 |   0\n {reftable => lib/reftable}/system.c                |   0\n {reftable => lib/reftable}/system.h                |   0\n {reftable => lib/reftable}/table.c                 |   0\n {reftable => lib/reftable}/table.h                 |   0\n {reftable => lib/reftable}/tree.c                  |   0\n {reftable => lib/reftable}/tree.h                  |   0\n {reftable => lib/reftable}/writer.c                |   0\n {reftable => lib/reftable}/writer.h                |   0\n remote.c => lib/remote.c                           |   0\n remote.h => lib/remote.h                           |   0\n repack-cruft.c => lib/repack-cruft.c               |   0\n repack-filtered.c => lib/repack-filtered.c         |   0\n repack-geometry.c => lib/repack-geometry.c         |   0\n repack-midx.c => lib/repack-midx.c                 |   0\n repack-promisor.c => lib/repack-promisor.c         |   0\n repack.c => lib/repack.c                           |   0\n repack.h => lib/repack.h                           |   0\n replace-object.c => lib/replace-object.c           |   0\n replace-object.h => lib/replace-object.h           |   0\n replay.c => lib/replay.c                           |   0\n replay.h => lib/replay.h                           |   0\n repo-settings.c => lib/repo-settings.c             |   0\n repo-settings.h => lib/repo-settings.h             |   0\n repository.c => lib/repository.c                   |   0\n repository.h => lib/repository.h                   |   0\n rerere.c => lib/rerere.c                           |   0\n rerere.h => lib/rerere.h                           |   0\n reset.c => lib/reset.c                             |   0\n reset.h => lib/reset.h                             |   0\n resolve-undo.c => lib/resolve-undo.c               |   0\n resolve-undo.h => lib/resolve-undo.h               |   0\n revision.c => lib/revision.c                       |   0\n revision.h => lib/revision.h                       |   0\n run-command.c => lib/run-command.c                 |   0\n run-command.h => lib/run-command.h                 |   0\n sane-ctype.h => lib/sane-ctype.h                   |   0\n send-pack.c => lib/send-pack.c                     |   0\n send-pack.h => lib/send-pack.h                     |   0\n sequencer.c => lib/sequencer.c                     |   0\n sequencer.h => lib/sequencer.h                     |   0\n serve.c => lib/serve.c                             |   0\n serve.h => lib/serve.h                             |   0\n server-info.c => lib/server-info.c                 |   0\n server-info.h => lib/server-info.h                 |   0\n setup.c => lib/setup.c                             |   0\n setup.h => lib/setup.h                             |   0\n {sha1 => lib/sha1}/openssl.h                       |   0\n .../sha1collisiondetection                         |   0\n {sha1dc => lib/sha1dc}/.gitattributes              |   0\n {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n {sha1dc => lib/sha1dc}/sha1.c                      |   0\n {sha1dc => lib/sha1dc}/sha1.h                      |   0\n {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n sha1dc_git.c => lib/sha1dc_git.c                   |   0\n sha1dc_git.h => lib/sha1dc_git.h                   |   0\n {sha256 => lib/sha256}/block/sha256.c              |   0\n {sha256 => lib/sha256}/block/sha256.h              |   0\n {sha256 => lib/sha256}/gcrypt.h                    |   0\n {sha256 => lib/sha256}/nettle.h                    |   0\n {sha256 => lib/sha256}/openssl.h                   |   0\n shallow.c => lib/shallow.c                         |   0\n shallow.h => lib/shallow.h                         |   0\n shortlog.h => lib/shortlog.h                       |   0\n sideband.c => lib/sideband.c                       |   0\n sideband.h => lib/sideband.h                       |   0\n sigchain.c => lib/sigchain.c                       |   0\n sigchain.h => lib/sigchain.h                       |   0\n simple-ipc.h => lib/simple-ipc.h                   |   0\n sparse-index.c => lib/sparse-index.c               |   0\n sparse-index.h => lib/sparse-index.h               |   0\n split-index.c => lib/split-index.c                 |   0\n split-index.h => lib/split-index.h                 |   0\n stable-qsort.c => lib/stable-qsort.c               |   0\n statinfo.c => lib/statinfo.c                       |   0\n statinfo.h => lib/statinfo.h                       |   0\n strbuf.c => lib/strbuf.c                           |   0\n strbuf.h => lib/strbuf.h                           |   0\n string-list.c => lib/string-list.c                 |   0\n string-list.h => lib/string-list.h                 |   0\n strmap.c => lib/strmap.c                           |   0\n strmap.h => lib/strmap.h                           |   0\n strvec.c => lib/strvec.c                           |   0\n strvec.h => lib/strvec.h                           |   0\n sub-process.c => lib/sub-process.c                 |   0\n sub-process.h => lib/sub-process.h                 |   0\n submodule-config.c => lib/submodule-config.c       |   0\n submodule-config.h => lib/submodule-config.h       |   0\n submodule.c => lib/submodule.c                     |   0\n submodule.h => lib/submodule.h                     |   0\n symlinks.c => lib/symlinks.c                       |   0\n symlinks.h => lib/symlinks.h                       |   0\n tag.c => lib/tag.c                                 |   0\n tag.h => lib/tag.h                                 |   0\n tar.h => lib/tar.h                                 |   0\n tempfile.c => lib/tempfile.c                       |   0\n tempfile.h => lib/tempfile.h                       |   0\n thread-utils.c => lib/thread-utils.c               |   0\n thread-utils.h => lib/thread-utils.h               |   0\n tmp-objdir.c => lib/tmp-objdir.c                   |   0\n tmp-objdir.h => lib/tmp-objdir.h                   |   0\n trace.c => lib/trace.c                             |   0\n trace.h => lib/trace.h                             |   0\n trace2.c => lib/trace2.c                           |   0\n trace2.h => lib/trace2.h                           |   0\n {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n {trace2 => lib/trace2}/tr2_dst.c                   |   0\n {trace2 => lib/trace2}/tr2_dst.h                   |   0\n {trace2 => lib/trace2}/tr2_sid.c                   |   0\n {trace2 => lib/trace2}/tr2_sid.h                   |   0\n {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n {trace2 => lib/trace2}/tr2_tls.c                   |   0\n {trace2 => lib/trace2}/tr2_tls.h                   |   0\n {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n trailer.c => lib/trailer.c                         |   0\n trailer.h => lib/trailer.h                         |   0\n transport-helper.c => lib/transport-helper.c       |   0\n transport-internal.h => lib/transport-internal.h   |   0\n transport.c => lib/transport.c                     |   0\n transport.h => lib/transport.h                     |   0\n tree-diff.c => lib/tree-diff.c                     |   0\n tree-walk.c => lib/tree-walk.c                     |   0\n tree-walk.h => lib/tree-walk.h                     |   0\n tree.c => lib/tree.c                               |   0\n tree.h => lib/tree.h                               |   0\n unicode-width.h => lib/unicode-width.h             |   0\n unix-socket.c => lib/unix-socket.c                 |   0\n unix-socket.h => lib/unix-socket.h                 |   0\n unix-stream-server.c => lib/unix-stream-server.c   |   0\n unix-stream-server.h => lib/unix-stream-server.h   |   0\n unpack-trees.c => lib/unpack-trees.c               |   0\n unpack-trees.h => lib/unpack-trees.h               |   0\n upload-pack.c => lib/upload-pack.c                 |   0\n upload-pack.h => lib/upload-pack.h                 |   0\n url.c => lib/url.c                                 |   0\n url.h => lib/url.h                                 |   0\n urlmatch.c => lib/urlmatch.c                       |   0\n urlmatch.h => lib/urlmatch.h                       |   0\n usage.c => lib/usage.c                             |   0\n userdiff.c => lib/userdiff.c                       |   0\n userdiff.h => lib/userdiff.h                       |   0\n utf8.c => lib/utf8.c                               |   0\n utf8.h => lib/utf8.h                               |   0\n varint.c => lib/varint.c                           |   0\n varint.h => lib/varint.h                           |   0\n version-def.h.in => lib/version-def.h.in           |   0\n version.c => lib/version.c                         |   0\n version.h => lib/version.h                         |   0\n versioncmp.c => lib/versioncmp.c                   |   0\n versioncmp.h => lib/versioncmp.h                   |   0\n walker.c => lib/walker.c                           |   0\n walker.h => lib/walker.h                           |   0\n wildmatch.c => lib/wildmatch.c                     |   0\n wildmatch.h => lib/wildmatch.h                     |   0\n worktree.c => lib/worktree.c                       |   0\n worktree.h => lib/worktree.h                       |   0\n wrapper.c => lib/wrapper.c                         |   0\n wrapper.h => lib/wrapper.h                         |   0\n write-or-die.c => lib/write-or-die.c               |   0\n write-or-die.h => lib/write-or-die.h               |   0\n ws.c => lib/ws.c                                   |   0\n ws.h => lib/ws.h                                   |   0\n wt-status.c => lib/wt-status.c                     |   0\n wt-status.h => lib/wt-status.h                     |   0\n xdiff-interface.c => lib/xdiff-interface.c         |   0\n xdiff-interface.h => lib/xdiff-interface.h         |   0\n {xdiff => lib/xdiff}/xdiff.h                       |   0\n {xdiff => lib/xdiff}/xdiffi.c                      |   0\n {xdiff => lib/xdiff}/xdiffi.h                      |   0\n {xdiff => lib/xdiff}/xemit.c                       |   0\n {xdiff => lib/xdiff}/xemit.h                       |   0\n {xdiff => lib/xdiff}/xhistogram.c                  |   0\n {xdiff => lib/xdiff}/xinclude.h                    |   0\n {xdiff => lib/xdiff}/xmacros.h                     |   0\n {xdiff => lib/xdiff}/xmerge.c                      |   0\n {xdiff => lib/xdiff}/xpatience.c                   |   0\n {xdiff => lib/xdiff}/xprepare.c                    |   0\n {xdiff => lib/xdiff}/xprepare.h                    |   0\n {xdiff => lib/xdiff}/xtypes.h                      |   0\n {xdiff => lib/xdiff}/xutils.c                      |   0\n {xdiff => lib/xdiff}/xutils.h                      |   0\n meson.build                                        | 700 +++++++++----------\n t/helper/test-example-tap.c                        |   2 +-\n 704 files changed, 825 insertions(+), 823 deletions(-)\n\nRange-diff versus v3:\n\n1:  069f2aebcf = 1:  4218cf6705 t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n2:  ee935f0622 ! 2:  cdfc78c1ab Move libgit.a sources into separate \"lib/\" directory\n    @@ Makefile: compile_commands.json:\n     +http-push.sp lib/http.sp lib/http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n      \t-DCURL_DISABLE_TYPECHECK\n      \n    - pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n    +-pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n    ++lib/pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n      \n      ifdef NO_EXPAT\n     -http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n\n---\nbase-commit: 0309c6da48e2f94a72c9cee6e95ac6a1d0d2c965\nchange-id: 20260415-pks-libgit-in-subdir-d8eec849cd48\n\n"},{"id":"547943","messageId":"20260713-pks-libgit-in-subdir-v4-1-696240876eb1@pks.im","threadId":"65493","inReplyTo":"20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im","subject":"[PATCH RFC v4 1/2] t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-07-13T05:50:15Z","receivedAt":"2026-07-13T05:50:34Z","isPatch":true,"body":"In the next commit we're about to introduce a new \"lib/\" directory and\nmove all of our files into it. With this split the compiler won't be\nable to find one of the includes in \"test-example-tap.c\" anymore. Adjust\nit to a relative include to prepare for this change.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n t/helper/test-example-tap.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/helper/test-example-tap.c b/t/helper/test-example-tap.c\nindex 998a1f0b42..50d46669d1 100644\n--- a/t/helper/test-example-tap.c\n+++ b/t/helper/test-example-tap.c\n@@ -1,5 +1,5 @@\n #include \"test-tool.h\"\n-#include \"t/unit-tests/test-lib.h\"\n+#include \"../unit-tests/test-lib.h\"\n \n /*\n  * The purpose of this \"unit test\" is to verify a few invariants of the unit\n\n-- \n2.55.0.313.g8d093f411d.dirty\n\n"},{"id":"547944","messageId":"20260713-pks-libgit-in-subdir-v4-2-696240876eb1@pks.im","threadId":"65493","inReplyTo":"20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im","subject":"[PATCH RFC v4 2/2] Move libgit.a sources into separate \"lib/\" directory","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-07-13T05:50:16Z","receivedAt":"2026-07-13T05:50:36Z","isPatch":true,"body":"The Git project is not exactly the easiest project to get started in:\nit's written in C and POSIX shell, with bits of Perl, Rust and other\nlanguages sprinkled into it. On top of that, the project has grown\nsomewhat organically over time, making the codebase hard to navigate.\n\nThese are problems that we're aware of, and there have been and still\nare efforts to clean up some of the technical debt that is natural to\nexist in a project that is more than 20 years old. Furthermore, we\nprovide resources to newcomers that help them out like our coding\nguidelines, code of conduct or \"MyFirstContribution.adoc\".\n\nBut there is a rather practical problem: finding your way around in our\nproject's tree is not easy. Doing a directory listing in the top-level\ndirectory will present you with more than 550 files, which makes it\nextremely hard for a newcomer to figure out what files they are even\nsupposed to look at. This makes the onboarding experience somewhat\nharder than it really needs to be. This isn't only a problem for\nnewcomers though, as I myself struggle to find the files I am looking\nfor because of the sheer number of files.\n\nBesides the problem of discoverability it also creates a problem of\nstructure. It is not obvious at all which files are part of \"libgit.a\"\nand which files are only linked into our final executables. So while we\nhave this split in our build systems, that split is not evident at all\nin our tree.\n\nIntroduce a new \"lib/\" directory and move all of our sources for\n\"libgit.a\" into it to fix these issues. It makes the split we have\nevident and reduces the number of files in our top-level tree from 550\nfiles to ~80 files.\n\nThis is still a lot of files, but it's significantly easier to navigate\nalready. Furthermore, we can further iterate after this step and think\nabout introducing a better structure for remaining files, as well.\n\nThis move does not come for free though:\n\n  - The mass rename introduces a cutoff point in the history of every\n    moved file, as tools like git-log(1) do not follow renames by\n    default.\n\n  - Any in-flight or not-yet-submitted topic that touches the moved\n    files will have to be rebased, and backporting fixes across the\n    boundary becomes more cumbersome as a patch can no longer apply\n    cleanly to both the old and the new layout.\n\nMy own (obviously subjective and biased) take is that the tradeoff is\nworth it, as these issues are a one-time cost while the benefits to\ndiscoverability will be permanent.\n\nFurthermore, especially the first downside is a limitation in Git\nitself. We're not the first or last project to do such a mass rename. So\nif our provided tools are insufficient, then we should improve them to\nmake the experience better for other projects, as well. Subjecting\nourselves to the same pain may even give us more incentive to eventually\nimprove rename following for everyone.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml                         |   9 +-\n .gitmodules                                        |   2 +-\n Documentation/Makefile                             |   4 +-\n Makefile                                           | 766 ++++++++++-----------\n config.mak.uname                                   |  52 +-\n contrib/buildsystems/CMakeLists.txt                |  95 +--\n git.rc.in                                          |   2 +-\n abspath.c => lib/abspath.c                         |   0\n abspath.h => lib/abspath.h                         |   0\n add-interactive.c => lib/add-interactive.c         |   0\n add-interactive.h => lib/add-interactive.h         |   0\n add-patch.c => lib/add-patch.c                     |   0\n add-patch.h => lib/add-patch.h                     |   0\n advice.c => lib/advice.c                           |   0\n advice.h => lib/advice.h                           |   0\n alias.c => lib/alias.c                             |   0\n alias.h => lib/alias.h                             |   0\n alloc.c => lib/alloc.c                             |   0\n alloc.h => lib/alloc.h                             |   0\n apply.c => lib/apply.c                             |   0\n apply.h => lib/apply.h                             |   0\n archive-tar.c => lib/archive-tar.c                 |   0\n archive-zip.c => lib/archive-zip.c                 |   0\n archive.c => lib/archive.c                         |   0\n archive.h => lib/archive.h                         |   0\n attr.c => lib/attr.c                               |   0\n attr.h => lib/attr.h                               |   0\n banned.h => lib/banned.h                           |   0\n base85.c => lib/base85.c                           |   0\n base85.h => lib/base85.h                           |   0\n bisect.c => lib/bisect.c                           |   0\n bisect.h => lib/bisect.h                           |   0\n blame.c => lib/blame.c                             |   0\n blame.h => lib/blame.h                             |   0\n blob.c => lib/blob.c                               |   0\n blob.h => lib/blob.h                               |   0\n {block-sha1 => lib/block-sha1}/sha1.c              |   0\n {block-sha1 => lib/block-sha1}/sha1.h              |   0\n bloom.c => lib/bloom.c                             |   0\n bloom.h => lib/bloom.h                             |   0\n branch.c => lib/branch.c                           |   0\n branch.h => lib/branch.h                           |   0\n builtin.h => lib/builtin.h                         |   0\n bundle-uri.c => lib/bundle-uri.c                   |   0\n bundle-uri.h => lib/bundle-uri.h                   |   0\n bundle.c => lib/bundle.c                           |   0\n bundle.h => lib/bundle.h                           |   0\n cache-tree.c => lib/cache-tree.c                   |   0\n cache-tree.h => lib/cache-tree.h                   |   0\n cbtree.c => lib/cbtree.c                           |   0\n cbtree.h => lib/cbtree.h                           |   0\n chdir-notify.c => lib/chdir-notify.c               |   0\n chdir-notify.h => lib/chdir-notify.h               |   0\n checkout.c => lib/checkout.c                       |   0\n checkout.h => lib/checkout.h                       |   0\n chunk-format.c => lib/chunk-format.c               |   0\n chunk-format.h => lib/chunk-format.h               |   0\n color.c => lib/color.c                             |   0\n color.h => lib/color.h                             |   0\n column.c => lib/column.c                           |   0\n column.h => lib/column.h                           |   0\n combine-diff.c => lib/combine-diff.c               |   0\n commit-graph.c => lib/commit-graph.c               |   0\n commit-graph.h => lib/commit-graph.h               |   0\n commit-reach.c => lib/commit-reach.c               |   0\n commit-reach.h => lib/commit-reach.h               |   0\n commit-slab-decl.h => lib/commit-slab-decl.h       |   0\n commit-slab-impl.h => lib/commit-slab-impl.h       |   0\n commit-slab.h => lib/commit-slab.h                 |   0\n commit.c => lib/commit.c                           |   0\n commit.h => lib/commit.h                           |   0\n common-exit.c => lib/common-exit.c                 |   0\n common-init.c => lib/common-init.c                 |   0\n common-init.h => lib/common-init.h                 |   0\n {compat => lib/compat}/.gitattributes              |   0\n {compat => lib/compat}/access.c                    |   0\n {compat => lib/compat}/apple-common-crypto.h       |   0\n {compat => lib/compat}/basename.c                  |   0\n {compat => lib/compat}/bswap.h                     |   0\n {compat => lib/compat}/compiler.h                  |   0\n {compat => lib/compat}/darwin/procinfo.c           |   0\n {compat => lib/compat}/disk.h                      |   0\n {compat => lib/compat}/fileno.c                    |   0\n {compat => lib/compat}/fopen.c                     |   0\n {compat => lib/compat}/fsmonitor/fsm-darwin-gcc.h  |   0\n .../compat}/fsmonitor/fsm-health-darwin.c          |   0\n .../compat}/fsmonitor/fsm-health-linux.c           |   0\n .../compat}/fsmonitor/fsm-health-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-health.h      |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-unix.c    |   0\n {compat => lib/compat}/fsmonitor/fsm-ipc-win32.c   |   0\n .../compat}/fsmonitor/fsm-listen-darwin.c          |   0\n .../compat}/fsmonitor/fsm-listen-linux.c           |   0\n .../compat}/fsmonitor/fsm-listen-win32.c           |   0\n {compat => lib/compat}/fsmonitor/fsm-listen.h      |   0\n .../compat}/fsmonitor/fsm-path-utils-darwin.c      |   0\n .../compat}/fsmonitor/fsm-path-utils-linux.c       |   0\n .../compat}/fsmonitor/fsm-path-utils-win32.c       |   0\n .../compat}/fsmonitor/fsm-settings-unix.c          |   0\n .../compat}/fsmonitor/fsm-settings-win32.c         |   0\n {compat => lib/compat}/hstrerror.c                 |   0\n {compat => lib/compat}/inet_ntop.c                 |   0\n {compat => lib/compat}/inet_pton.c                 |   0\n {compat => lib/compat}/linux/procinfo.c            |   0\n {compat => lib/compat}/memmem.c                    |   0\n {compat => lib/compat}/mingw-posix.h               |   0\n {compat => lib/compat}/mingw.c                     |   0\n {compat => lib/compat}/mingw.h                     |   0\n {compat => lib/compat}/mkdir.c                     |   0\n {compat => lib/compat}/mmap.c                      |   0\n {compat => lib/compat}/msvc-posix.h                |   0\n {compat => lib/compat}/msvc.c                      |   0\n {compat => lib/compat}/msvc.h                      |   0\n {compat => lib/compat}/nonblock.c                  |   0\n {compat => lib/compat}/nonblock.h                  |   0\n {compat => lib/compat}/obstack.c                   |   0\n {compat => lib/compat}/obstack.h                   |   0\n {compat => lib/compat}/open.c                      |   0\n {compat => lib/compat}/poll/poll.c                 |   0\n {compat => lib/compat}/poll/poll.h                 |   0\n {compat => lib/compat}/posix.h                     |   0\n {compat => lib/compat}/pread.c                     |   0\n {compat => lib/compat}/precompose_utf8.c           |   0\n {compat => lib/compat}/precompose_utf8.h           |   0\n {compat => lib/compat}/qsort_s.c                   |   0\n {compat => lib/compat}/regcomp_enhanced.c          |   0\n {compat => lib/compat}/regex/regcomp.c             |   0\n {compat => lib/compat}/regex/regex.c               |   0\n {compat => lib/compat}/regex/regex.h               |   0\n {compat => lib/compat}/regex/regex_internal.c      |   0\n {compat => lib/compat}/regex/regex_internal.h      |   0\n {compat => lib/compat}/regex/regexec.c             |   0\n {compat => lib/compat}/setenv.c                    |   0\n {compat => lib/compat}/sha1-chunked.c              |   0\n {compat => lib/compat}/sha1-chunked.h              |   0\n {compat => lib/compat}/simple-ipc/ipc-shared.c     |   0\n .../compat}/simple-ipc/ipc-unix-socket.c           |   0\n {compat => lib/compat}/simple-ipc/ipc-win32.c      |   0\n {compat => lib/compat}/snprintf.c                  |   0\n {compat => lib/compat}/stat.c                      |   0\n {compat => lib/compat}/strcasestr.c                |   0\n {compat => lib/compat}/strdup.c                    |   0\n {compat => lib/compat}/strlcpy.c                   |   0\n {compat => lib/compat}/strtoimax.c                 |   0\n {compat => lib/compat}/strtoumax.c                 |   0\n {compat => lib/compat}/stub/procinfo.c             |   0\n {compat => lib/compat}/terminal.c                  |   0\n {compat => lib/compat}/terminal.h                  |   0\n {compat => lib/compat}/unsetenv.c                  |   0\n {compat => lib/compat}/vcbuild/.gitignore          |   0\n {compat => lib/compat}/vcbuild/README              |  10 +-\n {compat => lib/compat}/vcbuild/find_vs_env.bat     |   2 +-\n {compat => lib/compat}/vcbuild/include/sys/param.h |   0\n {compat => lib/compat}/vcbuild/include/sys/time.h  |   0\n {compat => lib/compat}/vcbuild/include/sys/utime.h |   0\n {compat => lib/compat}/vcbuild/include/unistd.h    |   0\n {compat => lib/compat}/vcbuild/include/utime.h     |   0\n {compat => lib/compat}/vcbuild/scripts/clink.pl    |   0\n {compat => lib/compat}/vcbuild/scripts/lib.pl      |   0\n {compat => lib/compat}/vcbuild/vcpkg_copy_dlls.bat |   0\n {compat => lib/compat}/vcbuild/vcpkg_install.bat   |   4 +-\n {compat => lib/compat}/win32.h                     |   0\n {compat => lib/compat}/win32/alloca.h              |   0\n {compat => lib/compat}/win32/dirent.c              |   0\n {compat => lib/compat}/win32/dirent.h              |   0\n {compat => lib/compat}/win32/exit-process.h        |   0\n {compat => lib/compat}/win32/flush.c               |   0\n {compat => lib/compat}/win32/git.manifest          |   0\n {compat => lib/compat}/win32/headless.c            |   0\n {compat => lib/compat}/win32/lazyload.h            |   0\n {compat => lib/compat}/win32/path-utils.c          |   0\n {compat => lib/compat}/win32/path-utils.h          |   0\n {compat => lib/compat}/win32/pthread.c             |   0\n {compat => lib/compat}/win32/pthread.h             |   0\n {compat => lib/compat}/win32/syslog.c              |   0\n {compat => lib/compat}/win32/syslog.h              |   0\n .../compat}/win32/trace2_win32_process_info.c      |   0\n {compat => lib/compat}/win32mmap.c                 |   0\n {compat => lib/compat}/winansi.c                   |   0\n {compat => lib/compat}/zlib-compat.h               |   0\n .../compiler-tricks}/not-constant.c                |   0\n config.c => lib/config.c                           |   0\n config.h => lib/config.h                           |   0\n connect.c => lib/connect.c                         |   0\n connect.h => lib/connect.h                         |   0\n connected.c => lib/connected.c                     |   0\n connected.h => lib/connected.h                     |   0\n convert.c => lib/convert.c                         |   0\n convert.h => lib/convert.h                         |   0\n copy.c => lib/copy.c                               |   0\n copy.h => lib/copy.h                               |   0\n credential.c => lib/credential.c                   |   0\n credential.h => lib/credential.h                   |   0\n csum-file.c => lib/csum-file.c                     |   0\n csum-file.h => lib/csum-file.h                     |   0\n ctype.c => lib/ctype.c                             |   0\n date.c => lib/date.c                               |   0\n date.h => lib/date.h                               |   0\n decorate.c => lib/decorate.c                       |   0\n decorate.h => lib/decorate.h                       |   0\n delta-islands.c => lib/delta-islands.c             |   0\n delta-islands.h => lib/delta-islands.h             |   0\n delta.h => lib/delta.h                             |   0\n diagnose.c => lib/diagnose.c                       |   0\n diagnose.h => lib/diagnose.h                       |   0\n diff-delta.c => lib/diff-delta.c                   |   0\n diff-lib.c => lib/diff-lib.c                       |   0\n diff-merges.c => lib/diff-merges.c                 |   0\n diff-merges.h => lib/diff-merges.h                 |   0\n diff-no-index.c => lib/diff-no-index.c             |   0\n diff.c => lib/diff.c                               |   0\n diff.h => lib/diff.h                               |   0\n diffcore-break.c => lib/diffcore-break.c           |   0\n diffcore-delta.c => lib/diffcore-delta.c           |   0\n diffcore-order.c => lib/diffcore-order.c           |   0\n diffcore-pickaxe.c => lib/diffcore-pickaxe.c       |   0\n diffcore-rename.c => lib/diffcore-rename.c         |   0\n diffcore-rotate.c => lib/diffcore-rotate.c         |   0\n diffcore.h => lib/diffcore.h                       |   0\n dir-iterator.c => lib/dir-iterator.c               |   0\n dir-iterator.h => lib/dir-iterator.h               |   0\n dir.c => lib/dir.c                                 |   0\n dir.h => lib/dir.h                                 |   0\n editor.c => lib/editor.c                           |   0\n editor.h => lib/editor.h                           |   0\n entry.c => lib/entry.c                             |   0\n entry.h => lib/entry.h                             |   0\n environment.c => lib/environment.c                 |   0\n environment.h => lib/environment.h                 |   0\n {ewah => lib/ewah}/bitmap.c                        |   0\n {ewah => lib/ewah}/ewah_bitmap.c                   |   0\n {ewah => lib/ewah}/ewah_io.c                       |   0\n {ewah => lib/ewah}/ewah_rlw.c                      |   0\n {ewah => lib/ewah}/ewok.h                          |   0\n {ewah => lib/ewah}/ewok_rlw.h                      |   0\n exec-cmd.c => lib/exec-cmd.c                       |   0\n exec-cmd.h => lib/exec-cmd.h                       |   0\n fetch-negotiator.c => lib/fetch-negotiator.c       |   0\n fetch-negotiator.h => lib/fetch-negotiator.h       |   0\n fetch-pack.c => lib/fetch-pack.c                   |   0\n fetch-pack.h => lib/fetch-pack.h                   |   0\n fmt-merge-msg.c => lib/fmt-merge-msg.c             |   0\n fmt-merge-msg.h => lib/fmt-merge-msg.h             |   0\n for-each-ref.h => lib/for-each-ref.h               |   0\n fsck.c => lib/fsck.c                               |   0\n fsck.h => lib/fsck.h                               |   0\n fsmonitor--daemon.h => lib/fsmonitor--daemon.h     |   0\n fsmonitor-ipc.c => lib/fsmonitor-ipc.c             |   0\n fsmonitor-ipc.h => lib/fsmonitor-ipc.h             |   0\n fsmonitor-ll.h => lib/fsmonitor-ll.h               |   0\n .../fsmonitor-path-utils.h                         |   0\n fsmonitor-settings.c => lib/fsmonitor-settings.c   |   0\n fsmonitor-settings.h => lib/fsmonitor-settings.h   |   0\n fsmonitor.c => lib/fsmonitor.c                     |   0\n fsmonitor.h => lib/fsmonitor.h                     |   0\n gettext.c => lib/gettext.c                         |   0\n gettext.h => lib/gettext.h                         |   0\n git-compat-util.h => lib/git-compat-util.h         |   0\n git-curl-compat.h => lib/git-curl-compat.h         |   0\n git-zlib.c => lib/git-zlib.c                       |   0\n git-zlib.h => lib/git-zlib.h                       |   0\n gpg-interface.c => lib/gpg-interface.c             |   0\n gpg-interface.h => lib/gpg-interface.h             |   0\n graph.c => lib/graph.c                             |   0\n graph.h => lib/graph.h                             |   0\n grep.c => lib/grep.c                               |   0\n grep.h => lib/grep.h                               |   0\n hash-lookup.c => lib/hash-lookup.c                 |   0\n hash-lookup.h => lib/hash-lookup.h                 |   0\n hash.c => lib/hash.c                               |   0\n hash.h => lib/hash.h                               |   0\n hashmap.c => lib/hashmap.c                         |   0\n hashmap.h => lib/hashmap.h                         |   0\n help.c => lib/help.c                               |   0\n help.h => lib/help.h                               |   0\n hex-ll.c => lib/hex-ll.c                           |   0\n hex-ll.h => lib/hex-ll.h                           |   0\n hex.c => lib/hex.c                                 |   0\n hex.h => lib/hex.h                                 |   0\n hook.c => lib/hook.c                               |   0\n hook.h => lib/hook.h                               |   0\n http-walker.c => lib/http-walker.c                 |   0\n http.c => lib/http.c                               |   0\n http.h => lib/http.h                               |   0\n ident.c => lib/ident.c                             |   0\n ident.h => lib/ident.h                             |   0\n iterator.h => lib/iterator.h                       |   0\n json-writer.c => lib/json-writer.c                 |   0\n json-writer.h => lib/json-writer.h                 |   0\n khash.h => lib/khash.h                             |   0\n kwset.c => lib/kwset.c                             |   0\n kwset.h => lib/kwset.h                             |   0\n levenshtein.c => lib/levenshtein.c                 |   0\n levenshtein.h => lib/levenshtein.h                 |   0\n line-log.c => lib/line-log.c                       |   0\n line-log.h => lib/line-log.h                       |   0\n line-range.c => lib/line-range.c                   |   0\n line-range.h => lib/line-range.h                   |   0\n linear-assignment.c => lib/linear-assignment.c     |   0\n linear-assignment.h => lib/linear-assignment.h     |   0\n .../list-objects-filter-options.c                  |   0\n .../list-objects-filter-options.h                  |   0\n list-objects-filter.c => lib/list-objects-filter.c |   0\n list-objects-filter.h => lib/list-objects-filter.h |   0\n list-objects.c => lib/list-objects.c               |   0\n list-objects.h => lib/list-objects.h               |   0\n list.h => lib/list.h                               |   0\n lockfile.c => lib/lockfile.c                       |   0\n lockfile.h => lib/lockfile.h                       |   0\n log-tree.c => lib/log-tree.c                       |   0\n log-tree.h => lib/log-tree.h                       |   0\n loose.c => lib/loose.c                             |   0\n loose.h => lib/loose.h                             |   0\n ls-refs.c => lib/ls-refs.c                         |   0\n ls-refs.h => lib/ls-refs.h                         |   0\n mailinfo.c => lib/mailinfo.c                       |   0\n mailinfo.h => lib/mailinfo.h                       |   0\n mailmap.c => lib/mailmap.c                         |   0\n mailmap.h => lib/mailmap.h                         |   0\n match-trees.c => lib/match-trees.c                 |   0\n match-trees.h => lib/match-trees.h                 |   0\n mem-pool.c => lib/mem-pool.c                       |   0\n mem-pool.h => lib/mem-pool.h                       |   0\n merge-blobs.c => lib/merge-blobs.c                 |   0\n merge-blobs.h => lib/merge-blobs.h                 |   0\n merge-ll.c => lib/merge-ll.c                       |   0\n merge-ll.h => lib/merge-ll.h                       |   0\n merge-ort-wrappers.c => lib/merge-ort-wrappers.c   |   0\n merge-ort-wrappers.h => lib/merge-ort-wrappers.h   |   0\n merge-ort.c => lib/merge-ort.c                     |   0\n merge-ort.h => lib/merge-ort.h                     |   0\n merge.c => lib/merge.c                             |   0\n merge.h => lib/merge.h                             |   0\n mergesort.h => lib/mergesort.h                     |   0\n midx-write.c => lib/midx-write.c                   |   0\n midx.c => lib/midx.c                               |   0\n midx.h => lib/midx.h                               |   0\n name-hash.c => lib/name-hash.c                     |   0\n name-hash.h => lib/name-hash.h                     |   0\n {negotiator => lib/negotiator}/default.c           |   0\n {negotiator => lib/negotiator}/default.h           |   0\n {negotiator => lib/negotiator}/noop.c              |   0\n {negotiator => lib/negotiator}/noop.h              |   0\n {negotiator => lib/negotiator}/skipping.c          |   0\n {negotiator => lib/negotiator}/skipping.h          |   0\n notes-cache.c => lib/notes-cache.c                 |   0\n notes-cache.h => lib/notes-cache.h                 |   0\n notes-merge.c => lib/notes-merge.c                 |   0\n notes-merge.h => lib/notes-merge.h                 |   0\n notes-utils.c => lib/notes-utils.c                 |   0\n notes-utils.h => lib/notes-utils.h                 |   0\n notes.c => lib/notes.c                             |   0\n notes.h => lib/notes.h                             |   0\n object-file-convert.c => lib/object-file-convert.c |   0\n object-file-convert.h => lib/object-file-convert.h |   0\n object-file.c => lib/object-file.c                 |   0\n object-file.h => lib/object-file.h                 |   0\n object-name.c => lib/object-name.c                 |   0\n object-name.h => lib/object-name.h                 |   0\n object.c => lib/object.c                           |   0\n object.h => lib/object.h                           |   0\n odb.c => lib/odb.c                                 |   0\n odb.h => lib/odb.h                                 |   0\n {odb => lib/odb}/source-files.c                    |   0\n {odb => lib/odb}/source-files.h                    |   0\n {odb => lib/odb}/source-inmemory.c                 |   0\n {odb => lib/odb}/source-inmemory.h                 |   0\n {odb => lib/odb}/source-loose.c                    |   0\n {odb => lib/odb}/source-loose.h                    |   0\n {odb => lib/odb}/source-packed.c                   |   0\n {odb => lib/odb}/source-packed.h                   |   0\n {odb => lib/odb}/source.c                          |   0\n {odb => lib/odb}/source.h                          |   0\n {odb => lib/odb}/streaming.c                       |   0\n {odb => lib/odb}/streaming.h                       |   0\n {odb => lib/odb}/transaction.c                     |   0\n {odb => lib/odb}/transaction.h                     |   0\n oid-array.c => lib/oid-array.c                     |   0\n oid-array.h => lib/oid-array.h                     |   0\n oidmap.c => lib/oidmap.c                           |   0\n oidmap.h => lib/oidmap.h                           |   0\n oidset.c => lib/oidset.c                           |   0\n oidset.h => lib/oidset.h                           |   0\n oidtree.c => lib/oidtree.c                         |   0\n oidtree.h => lib/oidtree.h                         |   0\n pack-bitmap-write.c => lib/pack-bitmap-write.c     |   0\n pack-bitmap.c => lib/pack-bitmap.c                 |   0\n pack-bitmap.h => lib/pack-bitmap.h                 |   0\n pack-check.c => lib/pack-check.c                   |   0\n pack-mtimes.c => lib/pack-mtimes.c                 |   0\n pack-mtimes.h => lib/pack-mtimes.h                 |   0\n pack-objects.c => lib/pack-objects.c               |   0\n pack-objects.h => lib/pack-objects.h               |   0\n pack-refs.c => lib/pack-refs.c                     |   0\n pack-refs.h => lib/pack-refs.h                     |   0\n pack-revindex.c => lib/pack-revindex.c             |   0\n pack-revindex.h => lib/pack-revindex.h             |   0\n pack-write.c => lib/pack-write.c                   |   0\n pack.h => lib/pack.h                               |   0\n packfile-list.c => lib/packfile-list.c             |   0\n packfile-list.h => lib/packfile-list.h             |   0\n packfile.c => lib/packfile.c                       |   0\n packfile.h => lib/packfile.h                       |   0\n pager.c => lib/pager.c                             |   0\n pager.h => lib/pager.h                             |   0\n parallel-checkout.c => lib/parallel-checkout.c     |   0\n parallel-checkout.h => lib/parallel-checkout.h     |   0\n parse-options-cb.c => lib/parse-options-cb.c       |   0\n parse-options.c => lib/parse-options.c             |   0\n parse-options.h => lib/parse-options.h             |   0\n parse.c => lib/parse.c                             |   0\n parse.h => lib/parse.h                             |   0\n patch-delta.c => lib/patch-delta.c                 |   0\n patch-ids.c => lib/patch-ids.c                     |   0\n patch-ids.h => lib/patch-ids.h                     |   0\n path-walk.c => lib/path-walk.c                     |   0\n path-walk.h => lib/path-walk.h                     |   0\n path.c => lib/path.c                               |   0\n path.h => lib/path.h                               |   0\n pathspec.c => lib/pathspec.c                       |   0\n pathspec.h => lib/pathspec.h                       |   0\n pkt-line.c => lib/pkt-line.c                       |   0\n pkt-line.h => lib/pkt-line.h                       |   0\n preload-index.c => lib/preload-index.c             |   0\n preload-index.h => lib/preload-index.h             |   0\n pretty.c => lib/pretty.c                           |   0\n pretty.h => lib/pretty.h                           |   0\n prio-queue.c => lib/prio-queue.c                   |   0\n prio-queue.h => lib/prio-queue.h                   |   0\n progress.c => lib/progress.c                       |   0\n progress.h => lib/progress.h                       |   0\n promisor-remote.c => lib/promisor-remote.c         |   0\n promisor-remote.h => lib/promisor-remote.h         |   0\n prompt.c => lib/prompt.c                           |   0\n prompt.h => lib/prompt.h                           |   0\n protocol-caps.c => lib/protocol-caps.c             |   0\n protocol-caps.h => lib/protocol-caps.h             |   0\n protocol.c => lib/protocol.c                       |   0\n protocol.h => lib/protocol.h                       |   0\n prune-packed.c => lib/prune-packed.c               |   0\n prune-packed.h => lib/prune-packed.h               |   0\n pseudo-merge.c => lib/pseudo-merge.c               |   0\n pseudo-merge.h => lib/pseudo-merge.h               |   0\n quote.c => lib/quote.c                             |   0\n quote.h => lib/quote.h                             |   0\n range-diff.c => lib/range-diff.c                   |   0\n range-diff.h => lib/range-diff.h                   |   0\n reachable.c => lib/reachable.c                     |   0\n reachable.h => lib/reachable.h                     |   0\n read-cache-ll.h => lib/read-cache-ll.h             |   0\n read-cache.c => lib/read-cache.c                   |   0\n read-cache.h => lib/read-cache.h                   |   0\n rebase-interactive.c => lib/rebase-interactive.c   |   0\n rebase-interactive.h => lib/rebase-interactive.h   |   0\n rebase.c => lib/rebase.c                           |   0\n rebase.h => lib/rebase.h                           |   0\n ref-filter.c => lib/ref-filter.c                   |   0\n ref-filter.h => lib/ref-filter.h                   |   0\n reflog-walk.c => lib/reflog-walk.c                 |   0\n reflog-walk.h => lib/reflog-walk.h                 |   0\n reflog.c => lib/reflog.c                           |   0\n reflog.h => lib/reflog.h                           |   0\n refs.c => lib/refs.c                               |   0\n refs.h => lib/refs.h                               |   0\n {refs => lib/refs}/debug.c                         |   0\n {refs => lib/refs}/files-backend.c                 |   0\n {refs => lib/refs}/iterator.c                      |   0\n {refs => lib/refs}/packed-backend.c                |   0\n {refs => lib/refs}/packed-backend.h                |   0\n {refs => lib/refs}/ref-cache.c                     |   0\n {refs => lib/refs}/ref-cache.h                     |   0\n {refs => lib/refs}/refs-internal.h                 |   0\n {refs => lib/refs}/reftable-backend.c              |   0\n refspec.c => lib/refspec.c                         |   0\n refspec.h => lib/refspec.h                         |   0\n {reftable => lib/reftable}/LICENSE                 |   0\n {reftable => lib/reftable}/basics.c                |   0\n {reftable => lib/reftable}/basics.h                |   0\n {reftable => lib/reftable}/block.c                 |   0\n {reftable => lib/reftable}/block.h                 |   0\n {reftable => lib/reftable}/blocksource.c           |   0\n {reftable => lib/reftable}/blocksource.h           |   0\n {reftable => lib/reftable}/constants.h             |   0\n {reftable => lib/reftable}/error.c                 |   0\n {reftable => lib/reftable}/fsck.c                  |   0\n {reftable => lib/reftable}/iter.c                  |   0\n {reftable => lib/reftable}/iter.h                  |   0\n {reftable => lib/reftable}/merged.c                |   0\n {reftable => lib/reftable}/merged.h                |   0\n {reftable => lib/reftable}/pq.c                    |   0\n {reftable => lib/reftable}/pq.h                    |   0\n {reftable => lib/reftable}/record.c                |   0\n {reftable => lib/reftable}/record.h                |   0\n {reftable => lib/reftable}/reftable-basics.h       |   0\n {reftable => lib/reftable}/reftable-block.h        |   0\n {reftable => lib/reftable}/reftable-blocksource.h  |   0\n {reftable => lib/reftable}/reftable-constants.h    |   0\n {reftable => lib/reftable}/reftable-error.h        |   0\n {reftable => lib/reftable}/reftable-fsck.h         |   0\n {reftable => lib/reftable}/reftable-iterator.h     |   0\n {reftable => lib/reftable}/reftable-merged.h       |   0\n {reftable => lib/reftable}/reftable-record.h       |   0\n {reftable => lib/reftable}/reftable-stack.h        |   0\n {reftable => lib/reftable}/reftable-system.h       |   0\n {reftable => lib/reftable}/reftable-table.h        |   0\n {reftable => lib/reftable}/reftable-writer.h       |   0\n {reftable => lib/reftable}/stack.c                 |   0\n {reftable => lib/reftable}/stack.h                 |   0\n {reftable => lib/reftable}/system.c                |   0\n {reftable => lib/reftable}/system.h                |   0\n {reftable => lib/reftable}/table.c                 |   0\n {reftable => lib/reftable}/table.h                 |   0\n {reftable => lib/reftable}/tree.c                  |   0\n {reftable => lib/reftable}/tree.h                  |   0\n {reftable => lib/reftable}/writer.c                |   0\n {reftable => lib/reftable}/writer.h                |   0\n remote.c => lib/remote.c                           |   0\n remote.h => lib/remote.h                           |   0\n repack-cruft.c => lib/repack-cruft.c               |   0\n repack-filtered.c => lib/repack-filtered.c         |   0\n repack-geometry.c => lib/repack-geometry.c         |   0\n repack-midx.c => lib/repack-midx.c                 |   0\n repack-promisor.c => lib/repack-promisor.c         |   0\n repack.c => lib/repack.c                           |   0\n repack.h => lib/repack.h                           |   0\n replace-object.c => lib/replace-object.c           |   0\n replace-object.h => lib/replace-object.h           |   0\n replay.c => lib/replay.c                           |   0\n replay.h => lib/replay.h                           |   0\n repo-settings.c => lib/repo-settings.c             |   0\n repo-settings.h => lib/repo-settings.h             |   0\n repository.c => lib/repository.c                   |   0\n repository.h => lib/repository.h                   |   0\n rerere.c => lib/rerere.c                           |   0\n rerere.h => lib/rerere.h                           |   0\n reset.c => lib/reset.c                             |   0\n reset.h => lib/reset.h                             |   0\n resolve-undo.c => lib/resolve-undo.c               |   0\n resolve-undo.h => lib/resolve-undo.h               |   0\n revision.c => lib/revision.c                       |   0\n revision.h => lib/revision.h                       |   0\n run-command.c => lib/run-command.c                 |   0\n run-command.h => lib/run-command.h                 |   0\n sane-ctype.h => lib/sane-ctype.h                   |   0\n send-pack.c => lib/send-pack.c                     |   0\n send-pack.h => lib/send-pack.h                     |   0\n sequencer.c => lib/sequencer.c                     |   0\n sequencer.h => lib/sequencer.h                     |   0\n serve.c => lib/serve.c                             |   0\n serve.h => lib/serve.h                             |   0\n server-info.c => lib/server-info.c                 |   0\n server-info.h => lib/server-info.h                 |   0\n setup.c => lib/setup.c                             |   0\n setup.h => lib/setup.h                             |   0\n {sha1 => lib/sha1}/openssl.h                       |   0\n .../sha1collisiondetection                         |   0\n {sha1dc => lib/sha1dc}/.gitattributes              |   0\n {sha1dc => lib/sha1dc}/LICENSE.txt                 |   0\n {sha1dc => lib/sha1dc}/sha1.c                      |   0\n {sha1dc => lib/sha1dc}/sha1.h                      |   0\n {sha1dc => lib/sha1dc}/ubc_check.c                 |   0\n {sha1dc => lib/sha1dc}/ubc_check.h                 |   0\n sha1dc_git.c => lib/sha1dc_git.c                   |   0\n sha1dc_git.h => lib/sha1dc_git.h                   |   0\n {sha256 => lib/sha256}/block/sha256.c              |   0\n {sha256 => lib/sha256}/block/sha256.h              |   0\n {sha256 => lib/sha256}/gcrypt.h                    |   0\n {sha256 => lib/sha256}/nettle.h                    |   0\n {sha256 => lib/sha256}/openssl.h                   |   0\n shallow.c => lib/shallow.c                         |   0\n shallow.h => lib/shallow.h                         |   0\n shortlog.h => lib/shortlog.h                       |   0\n sideband.c => lib/sideband.c                       |   0\n sideband.h => lib/sideband.h                       |   0\n sigchain.c => lib/sigchain.c                       |   0\n sigchain.h => lib/sigchain.h                       |   0\n simple-ipc.h => lib/simple-ipc.h                   |   0\n sparse-index.c => lib/sparse-index.c               |   0\n sparse-index.h => lib/sparse-index.h               |   0\n split-index.c => lib/split-index.c                 |   0\n split-index.h => lib/split-index.h                 |   0\n stable-qsort.c => lib/stable-qsort.c               |   0\n statinfo.c => lib/statinfo.c                       |   0\n statinfo.h => lib/statinfo.h                       |   0\n strbuf.c => lib/strbuf.c                           |   0\n strbuf.h => lib/strbuf.h                           |   0\n string-list.c => lib/string-list.c                 |   0\n string-list.h => lib/string-list.h                 |   0\n strmap.c => lib/strmap.c                           |   0\n strmap.h => lib/strmap.h                           |   0\n strvec.c => lib/strvec.c                           |   0\n strvec.h => lib/strvec.h                           |   0\n sub-process.c => lib/sub-process.c                 |   0\n sub-process.h => lib/sub-process.h                 |   0\n submodule-config.c => lib/submodule-config.c       |   0\n submodule-config.h => lib/submodule-config.h       |   0\n submodule.c => lib/submodule.c                     |   0\n submodule.h => lib/submodule.h                     |   0\n symlinks.c => lib/symlinks.c                       |   0\n symlinks.h => lib/symlinks.h                       |   0\n tag.c => lib/tag.c                                 |   0\n tag.h => lib/tag.h                                 |   0\n tar.h => lib/tar.h                                 |   0\n tempfile.c => lib/tempfile.c                       |   0\n tempfile.h => lib/tempfile.h                       |   0\n thread-utils.c => lib/thread-utils.c               |   0\n thread-utils.h => lib/thread-utils.h               |   0\n tmp-objdir.c => lib/tmp-objdir.c                   |   0\n tmp-objdir.h => lib/tmp-objdir.h                   |   0\n trace.c => lib/trace.c                             |   0\n trace.h => lib/trace.h                             |   0\n trace2.c => lib/trace2.c                           |   0\n trace2.h => lib/trace2.h                           |   0\n {trace2 => lib/trace2}/tr2_cfg.c                   |   0\n {trace2 => lib/trace2}/tr2_cfg.h                   |   0\n {trace2 => lib/trace2}/tr2_cmd_name.c              |   0\n {trace2 => lib/trace2}/tr2_cmd_name.h              |   0\n {trace2 => lib/trace2}/tr2_ctr.c                   |   0\n {trace2 => lib/trace2}/tr2_ctr.h                   |   0\n {trace2 => lib/trace2}/tr2_dst.c                   |   0\n {trace2 => lib/trace2}/tr2_dst.h                   |   0\n {trace2 => lib/trace2}/tr2_sid.c                   |   0\n {trace2 => lib/trace2}/tr2_sid.h                   |   0\n {trace2 => lib/trace2}/tr2_sysenv.c                |   0\n {trace2 => lib/trace2}/tr2_sysenv.h                |   0\n {trace2 => lib/trace2}/tr2_tbuf.c                  |   0\n {trace2 => lib/trace2}/tr2_tbuf.h                  |   0\n {trace2 => lib/trace2}/tr2_tgt.h                   |   0\n {trace2 => lib/trace2}/tr2_tgt_event.c             |   0\n {trace2 => lib/trace2}/tr2_tgt_normal.c            |   0\n {trace2 => lib/trace2}/tr2_tgt_perf.c              |   0\n {trace2 => lib/trace2}/tr2_tls.c                   |   0\n {trace2 => lib/trace2}/tr2_tls.h                   |   0\n {trace2 => lib/trace2}/tr2_tmr.c                   |   0\n {trace2 => lib/trace2}/tr2_tmr.h                   |   0\n trailer.c => lib/trailer.c                         |   0\n trailer.h => lib/trailer.h                         |   0\n transport-helper.c => lib/transport-helper.c       |   0\n transport-internal.h => lib/transport-internal.h   |   0\n transport.c => lib/transport.c                     |   0\n transport.h => lib/transport.h                     |   0\n tree-diff.c => lib/tree-diff.c                     |   0\n tree-walk.c => lib/tree-walk.c                     |   0\n tree-walk.h => lib/tree-walk.h                     |   0\n tree.c => lib/tree.c                               |   0\n tree.h => lib/tree.h                               |   0\n unicode-width.h => lib/unicode-width.h             |   0\n unix-socket.c => lib/unix-socket.c                 |   0\n unix-socket.h => lib/unix-socket.h                 |   0\n unix-stream-server.c => lib/unix-stream-server.c   |   0\n unix-stream-server.h => lib/unix-stream-server.h   |   0\n unpack-trees.c => lib/unpack-trees.c               |   0\n unpack-trees.h => lib/unpack-trees.h               |   0\n upload-pack.c => lib/upload-pack.c                 |   0\n upload-pack.h => lib/upload-pack.h                 |   0\n url.c => lib/url.c                                 |   0\n url.h => lib/url.h                                 |   0\n urlmatch.c => lib/urlmatch.c                       |   0\n urlmatch.h => lib/urlmatch.h                       |   0\n usage.c => lib/usage.c                             |   0\n userdiff.c => lib/userdiff.c                       |   0\n userdiff.h => lib/userdiff.h                       |   0\n utf8.c => lib/utf8.c                               |   0\n utf8.h => lib/utf8.h                               |   0\n varint.c => lib/varint.c                           |   0\n varint.h => lib/varint.h                           |   0\n version-def.h.in => lib/version-def.h.in           |   0\n version.c => lib/version.c                         |   0\n version.h => lib/version.h                         |   0\n versioncmp.c => lib/versioncmp.c                   |   0\n versioncmp.h => lib/versioncmp.h                   |   0\n walker.c => lib/walker.c                           |   0\n walker.h => lib/walker.h                           |   0\n wildmatch.c => lib/wildmatch.c                     |   0\n wildmatch.h => lib/wildmatch.h                     |   0\n worktree.c => lib/worktree.c                       |   0\n worktree.h => lib/worktree.h                       |   0\n wrapper.c => lib/wrapper.c                         |   0\n wrapper.h => lib/wrapper.h                         |   0\n write-or-die.c => lib/write-or-die.c               |   0\n write-or-die.h => lib/write-or-die.h               |   0\n ws.c => lib/ws.c                                   |   0\n ws.h => lib/ws.h                                   |   0\n wt-status.c => lib/wt-status.c                     |   0\n wt-status.h => lib/wt-status.h                     |   0\n xdiff-interface.c => lib/xdiff-interface.c         |   0\n xdiff-interface.h => lib/xdiff-interface.h         |   0\n {xdiff => lib/xdiff}/xdiff.h                       |   0\n {xdiff => lib/xdiff}/xdiffi.c                      |   0\n {xdiff => lib/xdiff}/xdiffi.h                      |   0\n {xdiff => lib/xdiff}/xemit.c                       |   0\n {xdiff => lib/xdiff}/xemit.h                       |   0\n {xdiff => lib/xdiff}/xhistogram.c                  |   0\n {xdiff => lib/xdiff}/xinclude.h                    |   0\n {xdiff => lib/xdiff}/xmacros.h                     |   0\n {xdiff => lib/xdiff}/xmerge.c                      |   0\n {xdiff => lib/xdiff}/xpatience.c                   |   0\n {xdiff => lib/xdiff}/xprepare.c                    |   0\n {xdiff => lib/xdiff}/xprepare.h                    |   0\n {xdiff => lib/xdiff}/xtypes.h                      |   0\n {xdiff => lib/xdiff}/xutils.c                      |   0\n {xdiff => lib/xdiff}/xutils.h                      |   0\n meson.build                                        | 700 +++++++++----------\n 703 files changed, 824 insertions(+), 822 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex cf341d74db..accf456945 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -179,21 +179,22 @@ jobs:\n       uses: actions/checkout@v6\n       with:\n         repository: 'microsoft/vcpkg'\n-        path: 'compat/vcbuild/vcpkg'\n+        path: 'lib/compat/vcbuild/vcpkg'\n     - name: download vcpkg artifacts\n       uses: git-for-windows/get-azure-pipelines-artifact@v0\n       with:\n         repository: git/git\n         definitionId: 9\n+        path: lib/compat\n     - name: add msbuild to PATH\n       uses: microsoft/setup-msbuild@v3\n     - name: copy dlls to root\n       shell: cmd\n-      run: compat\\vcbuild\\vcpkg_copy_dlls.bat release\n+      run: lib\\compat\\vcbuild\\vcpkg_copy_dlls.bat release\n     - name: generate Visual Studio solution\n       shell: bash\n       run: |\n-        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \\\n+        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/lib/compat/vcbuild/vcpkg/installed/x64-windows \\\n         -DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON\n     - name: MSBuild\n       run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142\n@@ -201,7 +202,7 @@ jobs:\n       shell: bash\n       env:\n         MSVC: 1\n-        VCPKG_ROOT: ${{github.workspace}}\\compat\\vcbuild\\vcpkg\n+        VCPKG_ROOT: ${{github.workspace}}\\lib\\compat\\vcbuild\\vcpkg\n       run: |\n         mkdir -p artifacts &&\n         eval \"$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)\"\ndiff --git a/.gitmodules b/.gitmodules\nindex cbeebdab7a..8bafb8bb49 100644\n--- a/.gitmodules\n+++ b/.gitmodules\n@@ -1,4 +1,4 @@\n [submodule \"sha1collisiondetection\"]\n-\tpath = sha1collisiondetection\n+\tpath = lib/sha1collisiondetection\n \turl = https://github.com/cr-marcstevens/sha1collisiondetection.git\n \tbranch = master\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex 2699f0b24a..c4fd5a5c87 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -505,10 +505,10 @@ lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER)\n .PHONY: lint-docs-fsck-msgids\n LINT_DOCS_FSCK_MSGIDS = .build/lint-docs/fsck-msgids.ok\n $(LINT_DOCS_FSCK_MSGIDS): lint-fsck-msgids.perl\n-$(LINT_DOCS_FSCK_MSGIDS): ../fsck.h fsck-msgids.adoc\n+$(LINT_DOCS_FSCK_MSGIDS): ../lib/fsck.h fsck-msgids.adoc\n \t$(call mkdir_p_parent_template)\n \t$(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \\\n-\t\t../fsck.h fsck-msgids.adoc $@\n+\t\t../lib/fsck.h fsck-msgids.adoc $@\n lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS)\n \n ## Lint: delimited sections\ndiff --git a/Makefile b/Makefile\nindex 1f3f099f5c..706252558f 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -967,7 +967,7 @@ endif\n CFLAGS = -g -O2 -Wall\n LDFLAGS =\n CC_LD_DYNPATH = -Wl,-rpath,\n-BASIC_CFLAGS = -I.\n+BASIC_CFLAGS = -I. -Ilib\n BASIC_LDFLAGS =\n \n # library flags\n@@ -992,7 +992,7 @@ SANITIZE_LEAK =\n SANITIZE_ADDRESS =\n \n # For the 'coccicheck' target\n-SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I ,compat ewah refs sha256 trace2 win32 xdiff)\n+SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I lib/,compat ewah refs sha256 trace2 win32 xdiff)\n SPATCH_FLAGS =\n SPATCH_TEST_FLAGS =\n \n@@ -1083,297 +1083,297 @@ FOUND_SOURCE_FILES := $(filter-out $(GENERATED_H),$(shell $(SOURCES_CMD)))\n FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES))\n FOUND_H_SOURCES = $(filter %.h,$(FOUND_SOURCE_FILES))\n \n-COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES) reftable/%,$(FOUND_C_SOURCES))\n+COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES) lib/reftable/%,$(FOUND_C_SOURCES))\n \n LIB_H = $(FOUND_H_SOURCES)\n \n-LIB_OBJS += abspath.o\n-LIB_OBJS += add-interactive.o\n-LIB_OBJS += add-patch.o\n-LIB_OBJS += advice.o\n-LIB_OBJS += alias.o\n-LIB_OBJS += alloc.o\n-LIB_OBJS += apply.o\n-LIB_OBJS += archive-tar.o\n-LIB_OBJS += archive-zip.o\n-LIB_OBJS += archive.o\n-LIB_OBJS += attr.o\n-LIB_OBJS += base85.o\n-LIB_OBJS += bisect.o\n-LIB_OBJS += blame.o\n-LIB_OBJS += blob.o\n-LIB_OBJS += bloom.o\n-LIB_OBJS += branch.o\n-LIB_OBJS += bundle-uri.o\n-LIB_OBJS += bundle.o\n-LIB_OBJS += cache-tree.o\n-LIB_OBJS += cbtree.o\n-LIB_OBJS += chdir-notify.o\n-LIB_OBJS += checkout.o\n-LIB_OBJS += chunk-format.o\n-LIB_OBJS += color.o\n-LIB_OBJS += column.o\n-LIB_OBJS += combine-diff.o\n-LIB_OBJS += commit-graph.o\n-LIB_OBJS += commit-reach.o\n-LIB_OBJS += commit.o\n-LIB_OBJS += common-exit.o\n-LIB_OBJS += common-init.o\n-LIB_OBJS += compat/nonblock.o\n-LIB_OBJS += compat/obstack.o\n-LIB_OBJS += compat/open.o\n-LIB_OBJS += compat/terminal.o\n-LIB_OBJS += compiler-tricks/not-constant.o\n-LIB_OBJS += config.o\n-LIB_OBJS += connect.o\n-LIB_OBJS += connected.o\n-LIB_OBJS += convert.o\n-LIB_OBJS += copy.o\n-LIB_OBJS += credential.o\n-LIB_OBJS += csum-file.o\n-LIB_OBJS += ctype.o\n-LIB_OBJS += date.o\n-LIB_OBJS += decorate.o\n-LIB_OBJS += delta-islands.o\n-LIB_OBJS += diagnose.o\n-LIB_OBJS += diff-delta.o\n-LIB_OBJS += diff-merges.o\n-LIB_OBJS += diff-lib.o\n-LIB_OBJS += diff-no-index.o\n-LIB_OBJS += diff.o\n-LIB_OBJS += diffcore-break.o\n-LIB_OBJS += diffcore-delta.o\n-LIB_OBJS += diffcore-order.o\n-LIB_OBJS += diffcore-pickaxe.o\n-LIB_OBJS += diffcore-rename.o\n-LIB_OBJS += diffcore-rotate.o\n-LIB_OBJS += dir-iterator.o\n-LIB_OBJS += dir.o\n-LIB_OBJS += editor.o\n-LIB_OBJS += entry.o\n-LIB_OBJS += environment.o\n-LIB_OBJS += ewah/bitmap.o\n-LIB_OBJS += ewah/ewah_bitmap.o\n-LIB_OBJS += ewah/ewah_io.o\n-LIB_OBJS += ewah/ewah_rlw.o\n-LIB_OBJS += exec-cmd.o\n-LIB_OBJS += fetch-negotiator.o\n-LIB_OBJS += fetch-pack.o\n-LIB_OBJS += fmt-merge-msg.o\n-LIB_OBJS += fsck.o\n-LIB_OBJS += fsmonitor.o\n-LIB_OBJS += fsmonitor-ipc.o\n-LIB_OBJS += fsmonitor-settings.o\n-LIB_OBJS += gettext.o\n-LIB_OBJS += git-zlib.o\n-LIB_OBJS += gpg-interface.o\n-LIB_OBJS += graph.o\n-LIB_OBJS += grep.o\n-LIB_OBJS += hash-lookup.o\n-LIB_OBJS += hash.o\n-LIB_OBJS += hashmap.o\n-LIB_OBJS += help.o\n-LIB_OBJS += hex.o\n-LIB_OBJS += hex-ll.o\n-LIB_OBJS += hook.o\n-LIB_OBJS += ident.o\n-LIB_OBJS += json-writer.o\n-LIB_OBJS += kwset.o\n-LIB_OBJS += levenshtein.o\n-LIB_OBJS += line-log.o\n-LIB_OBJS += line-range.o\n-LIB_OBJS += linear-assignment.o\n-LIB_OBJS += list-objects-filter-options.o\n-LIB_OBJS += list-objects-filter.o\n-LIB_OBJS += list-objects.o\n-LIB_OBJS += lockfile.o\n-LIB_OBJS += log-tree.o\n-LIB_OBJS += loose.o\n-LIB_OBJS += ls-refs.o\n-LIB_OBJS += mailinfo.o\n-LIB_OBJS += mailmap.o\n-LIB_OBJS += match-trees.o\n-LIB_OBJS += mem-pool.o\n-LIB_OBJS += merge-blobs.o\n-LIB_OBJS += merge-ll.o\n-LIB_OBJS += merge-ort.o\n-LIB_OBJS += merge-ort-wrappers.o\n-LIB_OBJS += merge.o\n-LIB_OBJS += midx.o\n-LIB_OBJS += midx-write.o\n-LIB_OBJS += name-hash.o\n-LIB_OBJS += negotiator/default.o\n-LIB_OBJS += negotiator/noop.o\n-LIB_OBJS += negotiator/skipping.o\n-LIB_OBJS += notes-cache.o\n-LIB_OBJS += notes-merge.o\n-LIB_OBJS += notes-utils.o\n-LIB_OBJS += notes.o\n-LIB_OBJS += object-file-convert.o\n-LIB_OBJS += object-file.o\n-LIB_OBJS += object-name.o\n-LIB_OBJS += object.o\n-LIB_OBJS += odb.o\n-LIB_OBJS += odb/source.o\n-LIB_OBJS += odb/source-files.o\n-LIB_OBJS += odb/source-inmemory.o\n-LIB_OBJS += odb/source-loose.o\n-LIB_OBJS += odb/source-packed.o\n-LIB_OBJS += odb/streaming.o\n-LIB_OBJS += odb/transaction.o\n-LIB_OBJS += oid-array.o\n-LIB_OBJS += oidmap.o\n-LIB_OBJS += oidset.o\n-LIB_OBJS += oidtree.o\n-LIB_OBJS += pack-bitmap-write.o\n-LIB_OBJS += pack-bitmap.o\n-LIB_OBJS += pack-check.o\n-LIB_OBJS += pack-mtimes.o\n-LIB_OBJS += pack-objects.o\n-LIB_OBJS += pack-refs.o\n-LIB_OBJS += pack-revindex.o\n-LIB_OBJS += pack-write.o\n-LIB_OBJS += packfile.o\n-LIB_OBJS += packfile-list.o\n-LIB_OBJS += pager.o\n-LIB_OBJS += parallel-checkout.o\n-LIB_OBJS += parse.o\n-LIB_OBJS += parse-options-cb.o\n-LIB_OBJS += parse-options.o\n-LIB_OBJS += patch-delta.o\n-LIB_OBJS += patch-ids.o\n-LIB_OBJS += path.o\n-LIB_OBJS += path-walk.o\n-LIB_OBJS += pathspec.o\n-LIB_OBJS += pkt-line.o\n-LIB_OBJS += preload-index.o\n-LIB_OBJS += pretty.o\n-LIB_OBJS += prio-queue.o\n-LIB_OBJS += progress.o\n-LIB_OBJS += promisor-remote.o\n-LIB_OBJS += prompt.o\n-LIB_OBJS += protocol.o\n-LIB_OBJS += protocol-caps.o\n-LIB_OBJS += prune-packed.o\n-LIB_OBJS += pseudo-merge.o\n-LIB_OBJS += quote.o\n-LIB_OBJS += range-diff.o\n-LIB_OBJS += reachable.o\n-LIB_OBJS += read-cache.o\n-LIB_OBJS += rebase-interactive.o\n-LIB_OBJS += rebase.o\n-LIB_OBJS += ref-filter.o\n-LIB_OBJS += reflog-walk.o\n-LIB_OBJS += reflog.o\n-LIB_OBJS += refs.o\n-LIB_OBJS += refs/debug.o\n-LIB_OBJS += refs/files-backend.o\n-LIB_OBJS += refs/reftable-backend.o\n-LIB_OBJS += refs/iterator.o\n-LIB_OBJS += refs/packed-backend.o\n-LIB_OBJS += refs/ref-cache.o\n-LIB_OBJS += refspec.o\n-LIB_OBJS += reftable/basics.o\n-LIB_OBJS += reftable/block.o\n-LIB_OBJS += reftable/blocksource.o\n-LIB_OBJS += reftable/error.o\n-LIB_OBJS += reftable/fsck.o\n-LIB_OBJS += reftable/iter.o\n-LIB_OBJS += reftable/merged.o\n-LIB_OBJS += reftable/pq.o\n-LIB_OBJS += reftable/record.o\n-LIB_OBJS += reftable/stack.o\n-LIB_OBJS += reftable/system.o\n-LIB_OBJS += reftable/table.o\n-LIB_OBJS += reftable/tree.o\n-LIB_OBJS += reftable/writer.o\n-LIB_OBJS += remote.o\n-LIB_OBJS += repack.o\n-LIB_OBJS += repack-cruft.o\n-LIB_OBJS += repack-filtered.o\n-LIB_OBJS += repack-geometry.o\n-LIB_OBJS += repack-midx.o\n-LIB_OBJS += repack-promisor.o\n-LIB_OBJS += replace-object.o\n-LIB_OBJS += replay.o\n-LIB_OBJS += repo-settings.o\n-LIB_OBJS += repository.o\n-LIB_OBJS += rerere.o\n-LIB_OBJS += reset.o\n-LIB_OBJS += resolve-undo.o\n-LIB_OBJS += revision.o\n-LIB_OBJS += run-command.o\n-LIB_OBJS += send-pack.o\n-LIB_OBJS += sequencer.o\n-LIB_OBJS += serve.o\n-LIB_OBJS += server-info.o\n-LIB_OBJS += setup.o\n-LIB_OBJS += shallow.o\n-LIB_OBJS += sideband.o\n-LIB_OBJS += sigchain.o\n-LIB_OBJS += sparse-index.o\n-LIB_OBJS += split-index.o\n-LIB_OBJS += stable-qsort.o\n-LIB_OBJS += statinfo.o\n-LIB_OBJS += strbuf.o\n-LIB_OBJS += string-list.o\n-LIB_OBJS += strmap.o\n-LIB_OBJS += strvec.o\n-LIB_OBJS += sub-process.o\n-LIB_OBJS += submodule-config.o\n-LIB_OBJS += submodule.o\n-LIB_OBJS += symlinks.o\n-LIB_OBJS += tag.o\n-LIB_OBJS += tempfile.o\n-LIB_OBJS += thread-utils.o\n-LIB_OBJS += tmp-objdir.o\n-LIB_OBJS += trace.o\n-LIB_OBJS += trace2.o\n-LIB_OBJS += trace2/tr2_cfg.o\n-LIB_OBJS += trace2/tr2_cmd_name.o\n-LIB_OBJS += trace2/tr2_ctr.o\n-LIB_OBJS += trace2/tr2_dst.o\n-LIB_OBJS += trace2/tr2_sid.o\n-LIB_OBJS += trace2/tr2_sysenv.o\n-LIB_OBJS += trace2/tr2_tbuf.o\n-LIB_OBJS += trace2/tr2_tgt_event.o\n-LIB_OBJS += trace2/tr2_tgt_normal.o\n-LIB_OBJS += trace2/tr2_tgt_perf.o\n-LIB_OBJS += trace2/tr2_tls.o\n-LIB_OBJS += trace2/tr2_tmr.o\n-LIB_OBJS += trailer.o\n-LIB_OBJS += transport-helper.o\n-LIB_OBJS += transport.o\n-LIB_OBJS += tree-diff.o\n-LIB_OBJS += tree-walk.o\n-LIB_OBJS += tree.o\n-LIB_OBJS += unpack-trees.o\n-LIB_OBJS += upload-pack.o\n-LIB_OBJS += url.o\n-LIB_OBJS += urlmatch.o\n-LIB_OBJS += usage.o\n-LIB_OBJS += userdiff.o\n-LIB_OBJS += utf8.o\n+LIB_OBJS += lib/abspath.o\n+LIB_OBJS += lib/add-interactive.o\n+LIB_OBJS += lib/add-patch.o\n+LIB_OBJS += lib/advice.o\n+LIB_OBJS += lib/alias.o\n+LIB_OBJS += lib/alloc.o\n+LIB_OBJS += lib/apply.o\n+LIB_OBJS += lib/archive-tar.o\n+LIB_OBJS += lib/archive-zip.o\n+LIB_OBJS += lib/archive.o\n+LIB_OBJS += lib/attr.o\n+LIB_OBJS += lib/base85.o\n+LIB_OBJS += lib/bisect.o\n+LIB_OBJS += lib/blame.o\n+LIB_OBJS += lib/blob.o\n+LIB_OBJS += lib/bloom.o\n+LIB_OBJS += lib/branch.o\n+LIB_OBJS += lib/bundle-uri.o\n+LIB_OBJS += lib/bundle.o\n+LIB_OBJS += lib/cache-tree.o\n+LIB_OBJS += lib/cbtree.o\n+LIB_OBJS += lib/chdir-notify.o\n+LIB_OBJS += lib/checkout.o\n+LIB_OBJS += lib/chunk-format.o\n+LIB_OBJS += lib/color.o\n+LIB_OBJS += lib/column.o\n+LIB_OBJS += lib/combine-diff.o\n+LIB_OBJS += lib/commit-graph.o\n+LIB_OBJS += lib/commit-reach.o\n+LIB_OBJS += lib/commit.o\n+LIB_OBJS += lib/common-exit.o\n+LIB_OBJS += lib/common-init.o\n+LIB_OBJS += lib/compat/nonblock.o\n+LIB_OBJS += lib/compat/obstack.o\n+LIB_OBJS += lib/compat/open.o\n+LIB_OBJS += lib/compat/terminal.o\n+LIB_OBJS += lib/compiler-tricks/not-constant.o\n+LIB_OBJS += lib/config.o\n+LIB_OBJS += lib/connect.o\n+LIB_OBJS += lib/connected.o\n+LIB_OBJS += lib/convert.o\n+LIB_OBJS += lib/copy.o\n+LIB_OBJS += lib/credential.o\n+LIB_OBJS += lib/csum-file.o\n+LIB_OBJS += lib/ctype.o\n+LIB_OBJS += lib/date.o\n+LIB_OBJS += lib/decorate.o\n+LIB_OBJS += lib/delta-islands.o\n+LIB_OBJS += lib/diagnose.o\n+LIB_OBJS += lib/diff-delta.o\n+LIB_OBJS += lib/diff-merges.o\n+LIB_OBJS += lib/diff-lib.o\n+LIB_OBJS += lib/diff-no-index.o\n+LIB_OBJS += lib/diff.o\n+LIB_OBJS += lib/diffcore-break.o\n+LIB_OBJS += lib/diffcore-delta.o\n+LIB_OBJS += lib/diffcore-order.o\n+LIB_OBJS += lib/diffcore-pickaxe.o\n+LIB_OBJS += lib/diffcore-rename.o\n+LIB_OBJS += lib/diffcore-rotate.o\n+LIB_OBJS += lib/dir-iterator.o\n+LIB_OBJS += lib/dir.o\n+LIB_OBJS += lib/editor.o\n+LIB_OBJS += lib/entry.o\n+LIB_OBJS += lib/environment.o\n+LIB_OBJS += lib/ewah/bitmap.o\n+LIB_OBJS += lib/ewah/ewah_bitmap.o\n+LIB_OBJS += lib/ewah/ewah_io.o\n+LIB_OBJS += lib/ewah/ewah_rlw.o\n+LIB_OBJS += lib/exec-cmd.o\n+LIB_OBJS += lib/fetch-negotiator.o\n+LIB_OBJS += lib/fetch-pack.o\n+LIB_OBJS += lib/fmt-merge-msg.o\n+LIB_OBJS += lib/fsck.o\n+LIB_OBJS += lib/fsmonitor.o\n+LIB_OBJS += lib/fsmonitor-ipc.o\n+LIB_OBJS += lib/fsmonitor-settings.o\n+LIB_OBJS += lib/gettext.o\n+LIB_OBJS += lib/git-zlib.o\n+LIB_OBJS += lib/gpg-interface.o\n+LIB_OBJS += lib/graph.o\n+LIB_OBJS += lib/grep.o\n+LIB_OBJS += lib/hash-lookup.o\n+LIB_OBJS += lib/hash.o\n+LIB_OBJS += lib/hashmap.o\n+LIB_OBJS += lib/help.o\n+LIB_OBJS += lib/hex.o\n+LIB_OBJS += lib/hex-ll.o\n+LIB_OBJS += lib/hook.o\n+LIB_OBJS += lib/ident.o\n+LIB_OBJS += lib/json-writer.o\n+LIB_OBJS += lib/kwset.o\n+LIB_OBJS += lib/levenshtein.o\n+LIB_OBJS += lib/line-log.o\n+LIB_OBJS += lib/line-range.o\n+LIB_OBJS += lib/linear-assignment.o\n+LIB_OBJS += lib/list-objects-filter-options.o\n+LIB_OBJS += lib/list-objects-filter.o\n+LIB_OBJS += lib/list-objects.o\n+LIB_OBJS += lib/lockfile.o\n+LIB_OBJS += lib/log-tree.o\n+LIB_OBJS += lib/loose.o\n+LIB_OBJS += lib/ls-refs.o\n+LIB_OBJS += lib/mailinfo.o\n+LIB_OBJS += lib/mailmap.o\n+LIB_OBJS += lib/match-trees.o\n+LIB_OBJS += lib/mem-pool.o\n+LIB_OBJS += lib/merge-blobs.o\n+LIB_OBJS += lib/merge-ll.o\n+LIB_OBJS += lib/merge-ort.o\n+LIB_OBJS += lib/merge-ort-wrappers.o\n+LIB_OBJS += lib/merge.o\n+LIB_OBJS += lib/midx.o\n+LIB_OBJS += lib/midx-write.o\n+LIB_OBJS += lib/name-hash.o\n+LIB_OBJS += lib/negotiator/default.o\n+LIB_OBJS += lib/negotiator/noop.o\n+LIB_OBJS += lib/negotiator/skipping.o\n+LIB_OBJS += lib/notes-cache.o\n+LIB_OBJS += lib/notes-merge.o\n+LIB_OBJS += lib/notes-utils.o\n+LIB_OBJS += lib/notes.o\n+LIB_OBJS += lib/object-file-convert.o\n+LIB_OBJS += lib/object-file.o\n+LIB_OBJS += lib/object-name.o\n+LIB_OBJS += lib/object.o\n+LIB_OBJS += lib/odb.o\n+LIB_OBJS += lib/odb/source.o\n+LIB_OBJS += lib/odb/source-files.o\n+LIB_OBJS += lib/odb/source-inmemory.o\n+LIB_OBJS += lib/odb/source-loose.o\n+LIB_OBJS += lib/odb/source-packed.o\n+LIB_OBJS += lib/odb/streaming.o\n+LIB_OBJS += lib/odb/transaction.o\n+LIB_OBJS += lib/oid-array.o\n+LIB_OBJS += lib/oidmap.o\n+LIB_OBJS += lib/oidset.o\n+LIB_OBJS += lib/oidtree.o\n+LIB_OBJS += lib/pack-bitmap-write.o\n+LIB_OBJS += lib/pack-bitmap.o\n+LIB_OBJS += lib/pack-check.o\n+LIB_OBJS += lib/pack-mtimes.o\n+LIB_OBJS += lib/pack-objects.o\n+LIB_OBJS += lib/pack-refs.o\n+LIB_OBJS += lib/pack-revindex.o\n+LIB_OBJS += lib/pack-write.o\n+LIB_OBJS += lib/packfile.o\n+LIB_OBJS += lib/packfile-list.o\n+LIB_OBJS += lib/pager.o\n+LIB_OBJS += lib/parallel-checkout.o\n+LIB_OBJS += lib/parse.o\n+LIB_OBJS += lib/parse-options-cb.o\n+LIB_OBJS += lib/parse-options.o\n+LIB_OBJS += lib/patch-delta.o\n+LIB_OBJS += lib/patch-ids.o\n+LIB_OBJS += lib/path.o\n+LIB_OBJS += lib/path-walk.o\n+LIB_OBJS += lib/pathspec.o\n+LIB_OBJS += lib/pkt-line.o\n+LIB_OBJS += lib/preload-index.o\n+LIB_OBJS += lib/pretty.o\n+LIB_OBJS += lib/prio-queue.o\n+LIB_OBJS += lib/progress.o\n+LIB_OBJS += lib/promisor-remote.o\n+LIB_OBJS += lib/prompt.o\n+LIB_OBJS += lib/protocol.o\n+LIB_OBJS += lib/protocol-caps.o\n+LIB_OBJS += lib/prune-packed.o\n+LIB_OBJS += lib/pseudo-merge.o\n+LIB_OBJS += lib/quote.o\n+LIB_OBJS += lib/range-diff.o\n+LIB_OBJS += lib/reachable.o\n+LIB_OBJS += lib/read-cache.o\n+LIB_OBJS += lib/rebase-interactive.o\n+LIB_OBJS += lib/rebase.o\n+LIB_OBJS += lib/ref-filter.o\n+LIB_OBJS += lib/reflog-walk.o\n+LIB_OBJS += lib/reflog.o\n+LIB_OBJS += lib/refs.o\n+LIB_OBJS += lib/refs/debug.o\n+LIB_OBJS += lib/refs/files-backend.o\n+LIB_OBJS += lib/refs/reftable-backend.o\n+LIB_OBJS += lib/refs/iterator.o\n+LIB_OBJS += lib/refs/packed-backend.o\n+LIB_OBJS += lib/refs/ref-cache.o\n+LIB_OBJS += lib/refspec.o\n+LIB_OBJS += lib/reftable/basics.o\n+LIB_OBJS += lib/reftable/block.o\n+LIB_OBJS += lib/reftable/blocksource.o\n+LIB_OBJS += lib/reftable/error.o\n+LIB_OBJS += lib/reftable/fsck.o\n+LIB_OBJS += lib/reftable/iter.o\n+LIB_OBJS += lib/reftable/merged.o\n+LIB_OBJS += lib/reftable/pq.o\n+LIB_OBJS += lib/reftable/record.o\n+LIB_OBJS += lib/reftable/stack.o\n+LIB_OBJS += lib/reftable/system.o\n+LIB_OBJS += lib/reftable/table.o\n+LIB_OBJS += lib/reftable/tree.o\n+LIB_OBJS += lib/reftable/writer.o\n+LIB_OBJS += lib/remote.o\n+LIB_OBJS += lib/repack.o\n+LIB_OBJS += lib/repack-cruft.o\n+LIB_OBJS += lib/repack-filtered.o\n+LIB_OBJS += lib/repack-geometry.o\n+LIB_OBJS += lib/repack-midx.o\n+LIB_OBJS += lib/repack-promisor.o\n+LIB_OBJS += lib/replace-object.o\n+LIB_OBJS += lib/replay.o\n+LIB_OBJS += lib/repo-settings.o\n+LIB_OBJS += lib/repository.o\n+LIB_OBJS += lib/rerere.o\n+LIB_OBJS += lib/reset.o\n+LIB_OBJS += lib/resolve-undo.o\n+LIB_OBJS += lib/revision.o\n+LIB_OBJS += lib/run-command.o\n+LIB_OBJS += lib/send-pack.o\n+LIB_OBJS += lib/sequencer.o\n+LIB_OBJS += lib/serve.o\n+LIB_OBJS += lib/server-info.o\n+LIB_OBJS += lib/setup.o\n+LIB_OBJS += lib/shallow.o\n+LIB_OBJS += lib/sideband.o\n+LIB_OBJS += lib/sigchain.o\n+LIB_OBJS += lib/sparse-index.o\n+LIB_OBJS += lib/split-index.o\n+LIB_OBJS += lib/stable-qsort.o\n+LIB_OBJS += lib/statinfo.o\n+LIB_OBJS += lib/strbuf.o\n+LIB_OBJS += lib/string-list.o\n+LIB_OBJS += lib/strmap.o\n+LIB_OBJS += lib/strvec.o\n+LIB_OBJS += lib/sub-process.o\n+LIB_OBJS += lib/submodule-config.o\n+LIB_OBJS += lib/submodule.o\n+LIB_OBJS += lib/symlinks.o\n+LIB_OBJS += lib/tag.o\n+LIB_OBJS += lib/tempfile.o\n+LIB_OBJS += lib/thread-utils.o\n+LIB_OBJS += lib/tmp-objdir.o\n+LIB_OBJS += lib/trace.o\n+LIB_OBJS += lib/trace2.o\n+LIB_OBJS += lib/trace2/tr2_cfg.o\n+LIB_OBJS += lib/trace2/tr2_cmd_name.o\n+LIB_OBJS += lib/trace2/tr2_ctr.o\n+LIB_OBJS += lib/trace2/tr2_dst.o\n+LIB_OBJS += lib/trace2/tr2_sid.o\n+LIB_OBJS += lib/trace2/tr2_sysenv.o\n+LIB_OBJS += lib/trace2/tr2_tbuf.o\n+LIB_OBJS += lib/trace2/tr2_tgt_event.o\n+LIB_OBJS += lib/trace2/tr2_tgt_normal.o\n+LIB_OBJS += lib/trace2/tr2_tgt_perf.o\n+LIB_OBJS += lib/trace2/tr2_tls.o\n+LIB_OBJS += lib/trace2/tr2_tmr.o\n+LIB_OBJS += lib/trailer.o\n+LIB_OBJS += lib/transport-helper.o\n+LIB_OBJS += lib/transport.o\n+LIB_OBJS += lib/tree-diff.o\n+LIB_OBJS += lib/tree-walk.o\n+LIB_OBJS += lib/tree.o\n+LIB_OBJS += lib/unpack-trees.o\n+LIB_OBJS += lib/upload-pack.o\n+LIB_OBJS += lib/url.o\n+LIB_OBJS += lib/urlmatch.o\n+LIB_OBJS += lib/usage.o\n+LIB_OBJS += lib/userdiff.o\n+LIB_OBJS += lib/utf8.o\n ifdef NO_RUST\n-LIB_OBJS += varint.o\n-endif\n-LIB_OBJS += version.o\n-LIB_OBJS += versioncmp.o\n-LIB_OBJS += walker.o\n-LIB_OBJS += wildmatch.o\n-LIB_OBJS += worktree.o\n-LIB_OBJS += wrapper.o\n-LIB_OBJS += write-or-die.o\n-LIB_OBJS += ws.o\n-LIB_OBJS += wt-status.o\n-LIB_OBJS += xdiff-interface.o\n-LIB_OBJS += xdiff/xdiffi.o\n-LIB_OBJS += xdiff/xemit.o\n-LIB_OBJS += xdiff/xhistogram.o\n-LIB_OBJS += xdiff/xmerge.o\n-LIB_OBJS += xdiff/xpatience.o\n-LIB_OBJS += xdiff/xprepare.o\n-LIB_OBJS += xdiff/xutils.o\n+LIB_OBJS += lib/varint.o\n+endif\n+LIB_OBJS += lib/version.o\n+LIB_OBJS += lib/versioncmp.o\n+LIB_OBJS += lib/walker.o\n+LIB_OBJS += lib/wildmatch.o\n+LIB_OBJS += lib/worktree.o\n+LIB_OBJS += lib/wrapper.o\n+LIB_OBJS += lib/write-or-die.o\n+LIB_OBJS += lib/ws.o\n+LIB_OBJS += lib/wt-status.o\n+LIB_OBJS += lib/xdiff-interface.o\n+LIB_OBJS += lib/xdiff/xdiffi.o\n+LIB_OBJS += lib/xdiff/xemit.o\n+LIB_OBJS += lib/xdiff/xhistogram.o\n+LIB_OBJS += lib/xdiff/xmerge.o\n+LIB_OBJS += lib/xdiff/xpatience.o\n+LIB_OBJS += lib/xdiff/xprepare.o\n+LIB_OBJS += lib/xdiff/xutils.o\n \n BUILTIN_OBJS += builtin/add.o\n BUILTIN_OBJS += builtin/am.o\n@@ -1513,13 +1513,13 @@ BUILTIN_OBJS += builtin/write-tree.o\n # files which are taken from some third-party source where we want to be\n # less strict about issues such as coding style so we don't diverge from\n # upstream unnecessarily (making merging in future changes easier).\n-THIRD_PARTY_SOURCES += compat/inet_ntop.c\n-THIRD_PARTY_SOURCES += compat/inet_pton.c\n-THIRD_PARTY_SOURCES += compat/obstack.%\n-THIRD_PARTY_SOURCES += compat/poll/%\n-THIRD_PARTY_SOURCES += compat/regex/%\n-THIRD_PARTY_SOURCES += sha1collisiondetection/%\n-THIRD_PARTY_SOURCES += sha1dc/%\n+THIRD_PARTY_SOURCES += lib/compat/inet_ntop.c\n+THIRD_PARTY_SOURCES += lib/compat/inet_pton.c\n+THIRD_PARTY_SOURCES += lib/compat/obstack.%\n+THIRD_PARTY_SOURCES += lib/compat/poll/%\n+THIRD_PARTY_SOURCES += lib/compat/regex/%\n+THIRD_PARTY_SOURCES += lib/sha1collisiondetection/%\n+THIRD_PARTY_SOURCES += lib/sha1dc/%\n THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/%\n THIRD_PARTY_SOURCES += $(UNIT_TEST_DIR)/clar/clar/%\n \n@@ -1750,7 +1750,7 @@ endif\n \n ifdef NO_LIBGEN_H\n \tCOMPAT_CFLAGS += -DNO_LIBGEN_H\n-\tCOMPAT_OBJS += compat/basename.o\n+\tCOMPAT_OBJS += lib/compat/basename.o\n endif\n \n ifdef USE_LIBPCRE1\n@@ -1816,7 +1816,7 @@ else\n         endif\n         ifdef USE_CURL_FOR_IMAP_SEND\n \t\tBASIC_CFLAGS += -DUSE_CURL_FOR_IMAP_SEND\n-\t\tIMAP_SEND_BUILDDEPS = http.o\n+\t\tIMAP_SEND_BUILDDEPS = lib/http.o\n \t\tIMAP_SEND_LDFLAGS += $(CURL_LIBCURL)\n         endif\n         ifndef NO_EXPAT\n@@ -1937,11 +1937,11 @@ ifdef NO_NSEC\n endif\n ifdef SNPRINTF_RETURNS_BOGUS\n \tCOMPAT_CFLAGS += -DSNPRINTF_RETURNS_BOGUS\n-\tCOMPAT_OBJS += compat/snprintf.o\n+\tCOMPAT_OBJS += lib/compat/snprintf.o\n endif\n ifdef FREAD_READS_DIRECTORIES\n \tCOMPAT_CFLAGS += -DFREAD_READS_DIRECTORIES\n-\tCOMPAT_OBJS += compat/fopen.o\n+\tCOMPAT_OBJS += lib/compat/fopen.o\n endif\n ifdef OPEN_RETURNS_EINTR\n \tCOMPAT_CFLAGS += -DOPEN_RETURNS_EINTR\n@@ -1956,38 +1956,38 @@ endif\n ifdef NO_POLL\n \tNO_POLL_H = YesPlease\n \tNO_SYS_POLL_H = YesPlease\n-\tCOMPAT_CFLAGS += -DNO_POLL -Icompat/poll\n-\tCOMPAT_OBJS += compat/poll/poll.o\n+\tCOMPAT_CFLAGS += -DNO_POLL -Ilib/compat/poll\n+\tCOMPAT_OBJS += lib/compat/poll/poll.o\n endif\n ifdef NO_STRCASESTR\n \tCOMPAT_CFLAGS += -DNO_STRCASESTR\n-\tCOMPAT_OBJS += compat/strcasestr.o\n+\tCOMPAT_OBJS += lib/compat/strcasestr.o\n endif\n ifdef NO_STRLCPY\n \tCOMPAT_CFLAGS += -DNO_STRLCPY\n-\tCOMPAT_OBJS += compat/strlcpy.o\n+\tCOMPAT_OBJS += lib/compat/strlcpy.o\n endif\n ifdef NO_STRTOUMAX\n \tCOMPAT_CFLAGS += -DNO_STRTOUMAX\n-\tCOMPAT_OBJS += compat/strtoumax.o compat/strtoimax.o\n+\tCOMPAT_OBJS += lib/compat/strtoumax.o lib/compat/strtoimax.o\n endif\n ifdef NO_STRTOULL\n \tCOMPAT_CFLAGS += -DNO_STRTOULL\n endif\n ifdef NO_SETENV\n \tCOMPAT_CFLAGS += -DNO_SETENV\n-\tCOMPAT_OBJS += compat/setenv.o\n+\tCOMPAT_OBJS += lib/compat/setenv.o\n endif\n ifdef NO_MKDTEMP\n \tCOMPAT_CFLAGS += -DNO_MKDTEMP\n endif\n ifdef MKDIR_WO_TRAILING_SLASH\n \tCOMPAT_CFLAGS += -DMKDIR_WO_TRAILING_SLASH\n-\tCOMPAT_OBJS += compat/mkdir.o\n+\tCOMPAT_OBJS += lib/compat/mkdir.o\n endif\n ifdef NO_UNSETENV\n \tCOMPAT_CFLAGS += -DNO_UNSETENV\n-\tCOMPAT_OBJS += compat/unsetenv.o\n+\tCOMPAT_OBJS += lib/compat/unsetenv.o\n endif\n ifdef NO_SYS_SELECT_H\n \tBASIC_CFLAGS += -DNO_SYS_SELECT_H\n@@ -2009,11 +2009,11 @@ ifdef NO_INITGROUPS\n endif\n ifdef NO_MMAP\n \tCOMPAT_CFLAGS += -DNO_MMAP\n-\tCOMPAT_OBJS += compat/mmap.o\n+\tCOMPAT_OBJS += lib/compat/mmap.o\n else\n         ifdef USE_WIN32_MMAP\n \t\tCOMPAT_CFLAGS += -DUSE_WIN32_MMAP\n-\t\tCOMPAT_OBJS += compat/win32mmap.o\n+\t\tCOMPAT_OBJS += lib/compat/win32mmap.o\n         endif\n endif\n ifdef MMAP_PREVENTS_DELETE\n@@ -2031,7 +2031,7 @@ ifdef NO_SETITIMER\n endif\n ifdef NO_PREAD\n \tCOMPAT_CFLAGS += -DNO_PREAD\n-\tCOMPAT_OBJS += compat/pread.o\n+\tCOMPAT_OBJS += lib/compat/pread.o\n endif\n ifdef NO_FAST_WORKING_DIRECTORY\n \tBASIC_CFLAGS += -DNO_FAST_WORKING_DIRECTORY\n@@ -2041,7 +2041,7 @@ ifdef NO_TRUSTABLE_FILEMODE\n endif\n ifdef NEEDS_MODE_TRANSLATION\n \tCOMPAT_CFLAGS += -DNEEDS_MODE_TRANSLATION\n-\tCOMPAT_OBJS += compat/stat.o\n+\tCOMPAT_OBJS += lib/compat/stat.o\n endif\n ifdef NO_IPV6\n \tBASIC_CFLAGS += -DNO_IPV6\n@@ -2057,18 +2057,18 @@ else\n endif\n endif\n ifdef NO_INET_NTOP\n-\tLIB_OBJS += compat/inet_ntop.o\n+\tLIB_OBJS += lib/compat/inet_ntop.o\n \tBASIC_CFLAGS += -DNO_INET_NTOP\n endif\n ifdef NO_INET_PTON\n-\tLIB_OBJS += compat/inet_pton.o\n+\tLIB_OBJS += lib/compat/inet_pton.o\n \tBASIC_CFLAGS += -DNO_INET_PTON\n endif\n ifdef NO_UNIX_SOCKETS\n \tBASIC_CFLAGS += -DNO_UNIX_SOCKETS\n else\n-\tLIB_OBJS += unix-socket.o\n-\tLIB_OBJS += unix-stream-server.o\n+\tLIB_OBJS += lib/unix-socket.o\n+\tLIB_OBJS += lib/unix-stream-server.o\n endif\n \n # Simple IPC requires threads and platform-specific IPC support.\n@@ -2084,14 +2084,14 @@ endif\n #\n ifdef USE_WIN32_IPC\n \tBASIC_CFLAGS += -DSUPPORTS_SIMPLE_IPC\n-\tLIB_OBJS += compat/simple-ipc/ipc-shared.o\n-\tLIB_OBJS += compat/simple-ipc/ipc-win32.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-shared.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-win32.o\n else\n ifndef NO_PTHREADS\n ifndef NO_UNIX_SOCKETS\n \tBASIC_CFLAGS += -DSUPPORTS_SIMPLE_IPC\n-\tLIB_OBJS += compat/simple-ipc/ipc-shared.o\n-\tLIB_OBJS += compat/simple-ipc/ipc-unix-socket.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-shared.o\n+\tLIB_OBJS += lib/compat/simple-ipc/ipc-unix-socket.o\n endif\n endif\n endif\n@@ -2126,7 +2126,7 @@ ifdef OPENSSL_SHA1\n \tBASIC_CFLAGS += -DSHA1_OPENSSL\n else\n ifdef BLK_SHA1\n-\tLIB_OBJS += block-sha1/sha1.o\n+\tLIB_OBJS += lib/block-sha1/sha1.o\n \tBASIC_CFLAGS += -DSHA1_BLK\n else\n ifdef APPLE_COMMON_CRYPTO_SHA1\n@@ -2134,7 +2134,7 @@ ifdef APPLE_COMMON_CRYPTO_SHA1\n \tBASIC_CFLAGS += -DSHA1_APPLE\n else\n \tBASIC_CFLAGS += -DSHA1_DC\n-\tLIB_OBJS += sha1dc_git.o\n+\tLIB_OBJS += lib/sha1dc_git.o\n ifdef DC_SHA1_EXTERNAL\n         ifdef DC_SHA1_SUBMODULE\n                 ifneq ($(DC_SHA1_SUBMODULE),auto)\n@@ -2145,12 +2145,12 @@ $(error Only set DC_SHA1_EXTERNAL or DC_SHA1_SUBMODULE, not both)\n \tEXTLIBS += -lsha1detectcoll\n else\n ifdef DC_SHA1_SUBMODULE\n-\tLIB_OBJS += sha1collisiondetection/lib/sha1.o\n-\tLIB_OBJS += sha1collisiondetection/lib/ubc_check.o\n+\tLIB_OBJS += lib/sha1collisiondetection/lib/sha1.o\n+\tLIB_OBJS += lib/sha1collisiondetection/lib/ubc_check.o\n \tBASIC_CFLAGS += -DDC_SHA1_SUBMODULE\n else\n-\tLIB_OBJS += sha1dc/sha1.o\n-\tLIB_OBJS += sha1dc/ubc_check.o\n+\tLIB_OBJS += lib/sha1dc/sha1.o\n+\tLIB_OBJS += lib/sha1dc/ubc_check.o\n endif\n \tBASIC_CFLAGS += \\\n \t\t-DSHA1DC_NO_STANDARD_INCLUDES \\\n@@ -2170,7 +2170,7 @@ endif\n else\n ifdef BLK_SHA1_UNSAFE\n ifndef BLK_SHA1\n-\tLIB_OBJS += block-sha1/sha1.o\n+\tLIB_OBJS += lib/block-sha1/sha1.o\n \tBASIC_CFLAGS += -DSHA1_BLK_UNSAFE\n endif\n else\n@@ -2195,23 +2195,23 @@ ifdef GCRYPT_SHA256\n \tBASIC_CFLAGS += -DSHA256_GCRYPT\n \tEXTLIBS += -lgcrypt\n else\n-\tLIB_OBJS += sha256/block/sha256.o\n+\tLIB_OBJS += lib/sha256/block/sha256.o\n \tBASIC_CFLAGS += -DSHA256_BLK\n endif\n endif\n endif\n \n ifdef SHA1_MAX_BLOCK_SIZE\n-\tLIB_OBJS += compat/sha1-chunked.o\n+\tLIB_OBJS += lib/compat/sha1-chunked.o\n \tBASIC_CFLAGS += -DSHA1_MAX_BLOCK_SIZE=\"$(SHA1_MAX_BLOCK_SIZE)\"\n endif\n ifdef NO_HSTRERROR\n \tCOMPAT_CFLAGS += -DNO_HSTRERROR\n-\tCOMPAT_OBJS += compat/hstrerror.o\n+\tCOMPAT_OBJS += lib/compat/hstrerror.o\n endif\n ifdef NO_MEMMEM\n \tCOMPAT_CFLAGS += -DNO_MEMMEM\n-\tCOMPAT_OBJS += compat/memmem.o\n+\tCOMPAT_OBJS += lib/compat/memmem.o\n endif\n ifdef NO_GETPAGESIZE\n \tCOMPAT_CFLAGS += -DNO_GETPAGESIZE\n@@ -2222,7 +2222,7 @@ endif\n ifdef HAVE_ISO_QSORT_S\n \tCOMPAT_CFLAGS += -DHAVE_ISO_QSORT_S\n else\n-\tCOMPAT_OBJS += compat/qsort_s.o\n+\tCOMPAT_OBJS += lib/compat/qsort_s.o\n endif\n ifdef RUNTIME_PREFIX\n \tCOMPAT_CFLAGS += -DRUNTIME_PREFIX\n@@ -2259,12 +2259,12 @@ ifdef UNRELIABLE_FSTAT\n \tBASIC_CFLAGS += -DUNRELIABLE_FSTAT\n endif\n ifdef NO_REGEX\n-\tCOMPAT_CFLAGS += -Icompat/regex\n-\tCOMPAT_OBJS += compat/regex/regex.o\n+\tCOMPAT_CFLAGS += -Ilib/compat/regex\n+\tCOMPAT_OBJS += lib/compat/regex/regex.o\n else\n ifdef USE_ENHANCED_BASIC_REGULAR_EXPRESSIONS\n \tCOMPAT_CFLAGS += -DUSE_ENHANCED_BASIC_REGULAR_EXPRESSIONS\n-\tCOMPAT_OBJS += compat/regcomp_enhanced.o\n+\tCOMPAT_OBJS += lib/compat/regcomp_enhanced.o\n endif\n endif\n ifdef NATIVE_CRLF\n@@ -2273,7 +2273,7 @@ endif\n \n ifdef OVERRIDE_STRDUP\n \tCOMPAT_CFLAGS += -DOVERRIDE_STRDUP\n-\tCOMPAT_OBJS += compat/strdup.o\n+\tCOMPAT_OBJS += lib/compat/strdup.o\n endif\n \n ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT\n@@ -2335,7 +2335,7 @@ ifneq ($(findstring openssl,$(CSPRNG_METHOD)),)\n endif\n \n ifndef HAVE_PLATFORM_PROCINFO\n-\tCOMPAT_OBJS += compat/stub/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/stub/procinfo.o\n endif\n \n ifdef RUNTIME_PREFIX\n@@ -2365,25 +2365,25 @@ endif\n \n ifdef FILENO_IS_A_MACRO\n \tCOMPAT_CFLAGS += -DFILENO_IS_A_MACRO\n-\tCOMPAT_OBJS += compat/fileno.o\n+\tCOMPAT_OBJS += lib/compat/fileno.o\n endif\n \n ifdef NEED_ACCESS_ROOT_HANDLER\n \tCOMPAT_CFLAGS += -DNEED_ACCESS_ROOT_HANDLER\n-\tCOMPAT_OBJS += compat/access.o\n+\tCOMPAT_OBJS += lib/compat/access.o\n endif\n \n ifdef FSMONITOR_DAEMON_BACKEND\n \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_DAEMON_BACKEND\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-health-$(FSMONITOR_DAEMON_BACKEND).o\n endif\n \n ifdef FSMONITOR_OS_SETTINGS\n \tCOMPAT_CFLAGS += -DHAVE_FSMONITOR_OS_SETTINGS\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-ipc-$(FSMONITOR_OS_SETTINGS).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n-\tCOMPAT_OBJS += compat/fsmonitor/fsm-path-utils-$(FSMONITOR_DAEMON_BACKEND).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-ipc-$(FSMONITOR_OS_SETTINGS).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-settings-$(FSMONITOR_OS_SETTINGS).o\n+\tCOMPAT_OBJS += lib/compat/fsmonitor/fsm-path-utils-$(FSMONITOR_DAEMON_BACKEND).o\n endif\n \n ifdef WITH_BREAKING_CHANGES\n@@ -2667,9 +2667,9 @@ git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) \\\n \t\t$(filter %.o,$^) $(LIBS)\n \n-help.sp help.s help.o: command-list.h\n+lib/help.sp lib/help.s lib/help.o: command-list.h\n builtin/bugreport.sp builtin/bugreport.s builtin/bugreport.o: hook-list.h\n-hook.sp hook.s hook.o: hook-list.h\n+lib/hook.sp lib/hook.s lib/hook.o: hook-list.h\n \n builtin/help.sp builtin/help.s builtin/help.o: config-list.h GIT-PREFIX\n builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n@@ -2680,13 +2680,13 @@ builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \\\n PAGER_ENV_SQ = $(subst ','\\'',$(PAGER_ENV))\n PAGER_ENV_CQ = \"$(subst \",\\\",$(subst \\,\\\\,$(PAGER_ENV)))\"\n PAGER_ENV_CQ_SQ = $(subst ','\\'',$(PAGER_ENV_CQ))\n-pager.sp pager.s pager.o: EXTRA_CPPFLAGS = \\\n+lib/pager.sp lib/pager.s lib/pager.o: EXTRA_CPPFLAGS = \\\n \t-DPAGER_ENV='$(PAGER_ENV_CQ_SQ)'\n \n-version-def.h: version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT\n+version-def.h: lib/version-def.h.in GIT-VERSION-GEN GIT-VERSION-FILE GIT-USER-AGENT\n \t$(QUIET_GEN)$(call version_gen,\"$(shell pwd)\",$<,$@)\n \n-version.sp version.s version.o: version-def.h\n+lib/version.sp lib/version.s lib/version.o: version-def.h\n \n $(BUILT_INS): git$X\n \t$(QUIET_BUILT_IN)$(RM) $@ && \\\n@@ -2879,7 +2879,7 @@ ifdef INCLUDE_LIBGIT_RS\n endif\n \n ifndef NO_CURL\n-\tOBJECTS += http.o http-walker.o remote-curl.o\n+\tOBJECTS += lib/http.o lib/http-walker.o remote-curl.o\n endif\n \n .PHONY: objects\n@@ -2944,44 +2944,44 @@ compile_commands.json:\n \t@if test -s $@+; then mv $@+ $@; else $(RM) $@+; fi\n endif\n \n-exec-cmd.sp exec-cmd.s exec-cmd.o: GIT-PREFIX\n-exec-cmd.sp exec-cmd.s exec-cmd.o: EXTRA_CPPFLAGS = \\\n+lib/exec-cmd.sp lib/exec-cmd.s lib/exec-cmd.o: GIT-PREFIX\n+lib/exec-cmd.sp lib/exec-cmd.s lib/exec-cmd.o: EXTRA_CPPFLAGS = \\\n \t'-DGIT_EXEC_PATH=\"$(gitexecdir_SQ)\"' \\\n \t'-DGIT_LOCALE_PATH=\"$(localedir_relative_SQ)\"' \\\n \t'-DBINDIR=\"$(bindir_relative_SQ)\"' \\\n \t'-DFALLBACK_RUNTIME_PREFIX=\"$(prefix_SQ)\"'\n \n-setup.sp setup.s setup.o: GIT-PREFIX\n-setup.sp setup.s setup.o: EXTRA_CPPFLAGS = \\\n+lib/setup.sp lib/setup.s lib/setup.o: GIT-PREFIX\n+lib/setup.sp lib/setup.s lib/setup.o: EXTRA_CPPFLAGS = \\\n \t-DDEFAULT_GIT_TEMPLATE_DIR='\"$(template_dir_SQ)\"'\n \n-config.sp config.s config.o: GIT-PREFIX\n-config.sp config.s config.o: EXTRA_CPPFLAGS = \\\n+lib/config.sp lib/config.s lib/config.o: GIT-PREFIX\n+lib/config.sp lib/config.s lib/config.o: EXTRA_CPPFLAGS = \\\n \t-DETC_GITCONFIG='\"$(ETC_GITCONFIG_SQ)\"'\n \n-attr.sp attr.s attr.o: GIT-PREFIX\n-attr.sp attr.s attr.o: EXTRA_CPPFLAGS = \\\n+lib/attr.sp lib/attr.s lib/attr.o: GIT-PREFIX\n+lib/attr.sp lib/attr.s lib/attr.o: EXTRA_CPPFLAGS = \\\n \t-DETC_GITATTRIBUTES='\"$(ETC_GITATTRIBUTES_SQ)\"'\n \n-gettext.sp gettext.s gettext.o: GIT-PREFIX\n-gettext.sp gettext.s gettext.o: EXTRA_CPPFLAGS = \\\n+lib/gettext.sp lib/gettext.s lib/gettext.o: GIT-PREFIX\n+lib/gettext.sp lib/gettext.s lib/gettext.o: EXTRA_CPPFLAGS = \\\n \t-DGIT_LOCALE_PATH='\"$(localedir_relative_SQ)\"'\n \n-http-push.sp http.sp http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n+http-push.sp lib/http.sp lib/http-walker.sp remote-curl.sp imap-send.sp: SP_EXTRA_FLAGS += \\\n \t-DCURL_DISABLE_TYPECHECK\n \n-pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n+lib/pack-revindex.sp: SP_EXTRA_FLAGS += -Wno-memcpy-max-count\n \n ifdef NO_EXPAT\n-http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n+lib/http-walker.sp lib/http-walker.s lib/http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT\n endif\n \n ifdef NO_REGEX\n-compat/regex/regex.sp compat/regex/regex.o: EXTRA_CPPFLAGS = \\\n+lib/compat/regex/regex.sp lib/compat/regex/regex.o: EXTRA_CPPFLAGS = \\\n \t-DGAWK -DNO_MBSUPPORT\n endif\n \n-headless-git.o: compat/win32/headless.c GIT-CFLAGS\n+headless-git.o: lib/compat/win32/headless.c GIT-CFLAGS\n \t$(QUIET_CC)$(CC) $(ALL_CFLAGS) $(COMPAT_CFLAGS) \\\n \t\t-fno-stack-protector -o $@ -c -Wall -Wwrite-strings $<\n \n@@ -2995,10 +2995,10 @@ git-imap-send$X: imap-send.o $(IMAP_SEND_BUILDDEPS) GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(IMAP_SEND_LDFLAGS) $(LIBS)\n \n-git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)\n+git-http-fetch$X: lib/http.o lib/http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(LIBS)\n-git-http-push$X: http.o http-push.o GIT-LDFLAGS $(GITLIBS)\n+git-http-push$X: lib/http.o http-push.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)\n \n@@ -3008,7 +3008,7 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY)\n \tln -s $< $@ 2>/dev/null || \\\n \tcp $< $@\n \n-$(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS)\n+$(REMOTE_CURL_PRIMARY): remote-curl.o lib/http.o lib/http-walker.o GIT-LDFLAGS $(GITLIBS)\n \t$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \\\n \t\t$(CURL_LIBCURL) $(EXPAT_LIBEXPAT) $(LIBS)\n \n@@ -3172,8 +3172,8 @@ LOCALIZED_C_CORE += builtin/clone.c\n LOCALIZED_C_CORE += builtin/index-pack.c\n LOCALIZED_C_CORE += builtin/push.c\n LOCALIZED_C_CORE += builtin/reset.c\n-LOCALIZED_C_CORE += remote.c\n-LOCALIZED_C_CORE += wt-status.c\n+LOCALIZED_C_CORE += lib/remote.c\n+LOCALIZED_C_CORE += lib/wt-status.c\n \n LOCALIZED_C_CORE_GEN_PO = $(LOCALIZED_C_CORE:%=.build/pot/po/%.po)\n \n@@ -3412,18 +3412,18 @@ $(SP_OBJ): %.sp: %.c %.o $(GENERATED_H)\n .PHONY: sparse\n sparse: $(SP_OBJ)\n \n-EXCEPT_HDRS := $(GENERATED_H) unicode-width.h compat/% xdiff/% $(UNIT_TEST_DIR)/clar/% $(UNIT_TEST_DIR)/clar/clar/%\n+EXCEPT_HDRS := $(GENERATED_H) lib/unicode-width.h lib/compat/% lib/xdiff/% $(UNIT_TEST_DIR)/clar/% $(UNIT_TEST_DIR)/clar/clar/%\n ifndef OPENSSL_SHA1\n-\tEXCEPT_HDRS += sha1/openssl.h\n+\tEXCEPT_HDRS += lib/sha1/openssl.h\n endif\n ifndef OPENSSL_SHA256\n-\tEXCEPT_HDRS += sha256/openssl.h\n+\tEXCEPT_HDRS += lib/sha256/openssl.h\n endif\n ifndef NETTLE_SHA256\n-\tEXCEPT_HDRS += sha256/nettle.h\n+\tEXCEPT_HDRS += lib/sha256/nettle.h\n endif\n ifndef GCRYPT_SHA256\n-\tEXCEPT_HDRS += sha256/gcrypt.h\n+\tEXCEPT_HDRS += lib/sha256/gcrypt.h\n endif\n CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))\n HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))\n@@ -3775,13 +3775,13 @@ GIT_ARCHIVE_EXTRA_FILES = \\\n \t--add-file=.dist-tmp-dir/git-gui/version\n ifdef DC_SHA1_SUBMODULE\n GIT_ARCHIVE_EXTRA_FILES += \\\n-\t--prefix=$(GIT_TARNAME)/sha1collisiondetection/ \\\n-\t--add-file=sha1collisiondetection/LICENSE.txt \\\n-\t--prefix=$(GIT_TARNAME)/sha1collisiondetection/lib/ \\\n-\t--add-file=sha1collisiondetection/lib/sha1.c \\\n-\t--add-file=sha1collisiondetection/lib/sha1.h \\\n-\t--add-file=sha1collisiondetection/lib/ubc_check.c \\\n-\t--add-file=sha1collisiondetection/lib/ubc_check.h\n+\t--prefix=$(GIT_TARNAME)/lib/sha1collisiondetection/ \\\n+\t--add-file=lib/sha1collisiondetection/LICENSE.txt \\\n+\t--prefix=$(GIT_TARNAME)/lib/sha1collisiondetection/lib/ \\\n+\t--add-file=lib/sha1collisiondetection/lib/sha1.c \\\n+\t--add-file=lib/sha1collisiondetection/lib/sha1.h \\\n+\t--add-file=lib/sha1collisiondetection/lib/ubc_check.c \\\n+\t--add-file=lib/sha1collisiondetection/lib/ubc_check.h\n endif\n dist: git-archive$(X) configure\n \t@$(RM) -r .dist-tmp-dir\n@@ -3911,7 +3911,7 @@ ifdef MSVC\n \t$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))\n \t$(RM) $(patsubst %.exe,%.iobj,$(TEST_PROGRAMS))\n \t$(RM) $(patsubst %.exe,%.ipdb,$(TEST_PROGRAMS))\n-\t$(RM) compat/vcbuild/MSVC-DEFS-GEN\n+\t$(RM) lib/compat/vcbuild/MSVC-DEFS-GEN\n endif\n \n .PHONY: all install profile-clean cocciclean clean strip\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 8719e09f66..7af406439e 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -21,17 +21,17 @@ ifdef MSVC\n \n \t# Generate and include makefile variables that point to the\n \t# currently installed set of MSVC command line tools.\n-compat/vcbuild/MSVC-DEFS-GEN: compat/vcbuild/find_vs_env.bat\n+lib/compat/vcbuild/MSVC-DEFS-GEN: lib/compat/vcbuild/find_vs_env.bat\n \t@\"$<\" | tr '\\\\' / >\"$@\"\n-include compat/vcbuild/MSVC-DEFS-GEN\n+include lib/compat/vcbuild/MSVC-DEFS-GEN\n \n \t# See if vcpkg and the vcpkg-build versions of the third-party\n \t# libraries that we use are installed.  We include the result\n \t# to get $(vcpkg_*) variables defined for the Makefile.\n ifeq (,$(SKIP_VCPKG))\n-compat/vcbuild/VCPKG-DEFS: compat/vcbuild/vcpkg_install.bat\n+lib/compat/vcbuild/VCPKG-DEFS: lib/compat/vcbuild/vcpkg_install.bat\n \t@\"$<\"\n-include compat/vcbuild/VCPKG-DEFS\n+include lib/compat/vcbuild/VCPKG-DEFS\n endif\n endif\n \n@@ -62,7 +62,7 @@ ifeq ($(uname_S),Linux)\n \tHAVE_SYSINFO = YesPlease\n \tPROCFS_EXECUTABLE_PATH = /proc/self/exe\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n-\tCOMPAT_OBJS += compat/linux/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/linux/procinfo.o\n \tEXTLIBS += -ldl\n \t# centos7/rhel7 provides gcc 4.8.5 and zlib 1.2.7.\n         ifneq ($(findstring .el7.,$(uname_R)),)\n@@ -152,7 +152,7 @@ ifeq ($(uname_S),Darwin)\n \tNO_MEMMEM = YesPlease\n \tUSE_ST_TIMESPEC = YesPlease\n \tHAVE_DEV_TTY = YesPlease\n-\tCOMPAT_OBJS += compat/precompose_utf8.o\n+\tCOMPAT_OBJS += lib/compat/precompose_utf8.o\n \tBASIC_CFLAGS += -DPRECOMPOSE_UNICODE\n \tBASIC_CFLAGS += -DPROTECT_HFS_DEFAULT=1\n \tHAVE_BSD_SYSCTL = YesPlease\n@@ -161,7 +161,7 @@ ifeq ($(uname_S),Darwin)\n \tCSPRNG_METHOD = arc4random\n \tUSE_ENHANCED_BASIC_REGULAR_EXPRESSIONS = YesPlease\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n-\tCOMPAT_OBJS += compat/darwin/procinfo.o\n+\tCOMPAT_OBJS += lib/compat/darwin/procinfo.o\n \n         ifeq ($(uname_M),arm64)\n \t\tHOMEBREW_PREFIX = /opt/homebrew\n@@ -292,7 +292,7 @@ ifeq ($(uname_O),Cygwin)\n \tUNRELIABLE_FSTAT = UnfortunatelyYes\n \tOBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo\n \tMMAP_PREVENTS_DELETE = UnfortunatelyYes\n-\tCOMPAT_OBJS += compat/win32/path-utils.o\n+\tCOMPAT_OBJS += lib/compat/win32/path-utils.o\n \tFREAD_READS_DIRECTORIES = UnfortunatelyYes\n endif\n ifeq ($(uname_S),FreeBSD)\n@@ -523,17 +523,17 @@ ifeq (/mingw64,$(subst 32,64,$(subst clangarm,mingw,$(prefix))))\n \tETC_GITATTRIBUTES = ../etc/gitattributes\n endif\n \n-\tCC = compat/vcbuild/scripts/clink.pl\n-\tAR = compat/vcbuild/scripts/lib.pl\n+\tCC = lib/compat/vcbuild/scripts/clink.pl\n+\tAR = lib/compat/vcbuild/scripts/lib.pl\n \tCFLAGS =\n-\tBASIC_CFLAGS = -nologo -I. -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n-\tCOMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n-\t\tcompat/win32/flush.o \\\n-\t\tcompat/win32/path-utils.o \\\n-\t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/trace2_win32_process_info.o \\\n-\t\tcompat/win32/dirent.o\n-\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n+\tBASIC_CFLAGS = -nologo -I. -Ilib/compat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n+\tCOMPAT_OBJS = lib/compat/msvc.o lib/compat/winansi.o \\\n+\t\tlib/compat/win32/flush.o \\\n+\t\tlib/compat/win32/path-utils.o \\\n+\t\tlib/compat/win32/pthread.o lib/compat/win32/syslog.o \\\n+\t\tlib/compat/win32/trace2_win32_process_info.o \\\n+\t\tlib/compat/win32/dirent.o\n+\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Ilib/compat -Ilib/compat/regex -Ilib/compat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n \tBASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -ENTRY:wmainCRTStartup -SUBSYSTEM:CONSOLE\n \t# invalidcontinue.obj allows Git's source code to close the same file\n \t# handle twice, or to access the osfhandle of an already-closed stdout\n@@ -573,7 +573,7 @@ endif\n \n \tEXTRA_PROGRAMS += headless-git$X\n \n-compat/msvc.o: compat/msvc.c compat/mingw.c GIT-CFLAGS\n+lib/compat/msvc.o: lib/compat/msvc.c lib/compat/mingw.c GIT-CFLAGS\n endif\n ifeq ($(uname_S),Interix)\n \tNO_INITGROUPS = YesPlease\n@@ -724,14 +724,14 @@ ifeq ($(uname_S),MINGW)\n \tHAVE_PLATFORM_PROCINFO = YesPlease\n \tCSPRNG_METHOD = rtlgenrandom\n \tBASIC_LDFLAGS += -municode\n-\tCOMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32\n+\tCOMPAT_CFLAGS += -DNOGDI -Ilib/compat -Ilib/compat/win32\n \tCOMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n-\tCOMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n-\t\tcompat/win32/trace2_win32_process_info.o \\\n-\t\tcompat/win32/flush.o \\\n-\t\tcompat/win32/path-utils.o \\\n-\t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/dirent.o\n+\tCOMPAT_OBJS += lib/compat/mingw.o lib/compat/winansi.o \\\n+\t\tlib/compat/win32/trace2_win32_process_info.o \\\n+\t\tlib/compat/win32/flush.o \\\n+\t\tlib/compat/win32/path-utils.o \\\n+\t\tlib/compat/win32/pthread.o lib/compat/win32/syslog.o \\\n+\t\tlib/compat/win32/dirent.o\n \tBASIC_CFLAGS += -DWIN32\n \tEXTLIBS += -lws2_32\n \tGITLIBS += git.res\ndiff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt\nindex a57c4b464f..446a6c889f 100644\n--- a/contrib/buildsystems/CMakeLists.txt\n+++ b/contrib/buildsystems/CMakeLists.txt\n@@ -62,10 +62,10 @@ if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS)\n endif()\n \n if(USE_VCPKG)\n-\tset(VCPKG_DIR \"${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg\")\n+\tset(VCPKG_DIR \"${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg\")\n \tif(NOT EXISTS ${VCPKG_DIR})\n \t\tmessage(\"Initializing vcpkg and building the Git's dependencies (this will take a while...)\")\n-\t\texecute_process(COMMAND ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg_install.bat)\n+\t\texecute_process(COMMAND ${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg_install.bat)\n \tendif()\n \tlist(APPEND CMAKE_PREFIX_PATH \"${VCPKG_DIR}/installed/x64-windows\")\n \n@@ -194,7 +194,7 @@ else()\n \tfind_program(MSGFMT_EXE msgfmt)\n \tif(NOT MSGFMT_EXE)\n \t\tif(USE_VCPKG)\n-\t\t\tset(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)\n+\t\t\tset(MSGFMT_EXE ${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/vcpkg/downloads/tools/msys2/msys64/usr/bin/msgfmt.exe)\n \t\tendif()\n \t\tif(NOT EXISTS ${MSGFMT_EXE})\n \t\t\tmessage(WARNING \"Text Translations won't be built\")\n@@ -212,13 +212,14 @@ endif()\n \n #default behaviour\n include_directories(${CMAKE_SOURCE_DIR})\n+include_directories(${CMAKE_SOURCE_DIR}/lib)\n add_compile_definitions(GIT_HOST_CPU=\"${CMAKE_SYSTEM_PROCESSOR}\")\n add_compile_definitions(SHA256_BLK INTERNAL_QSORT RUNTIME_PREFIX)\n add_compile_definitions(NO_OPENSSL SHA1_DC SHA1DC_NO_STANDARD_INCLUDES\n \t\t\tSHA1DC_INIT_SAFE_HASH_DEFAULT=0\n \t\t\tSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"git-compat-util.h\"\n \t\t\tSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"git-compat-util.h\" )\n-list(APPEND compat_SOURCES sha1dc_git.c sha1dc/sha1.c sha1dc/ubc_check.c block-sha1/sha1.c sha256/block/sha256.c compat/qsort_s.c)\n+list(APPEND compat_SOURCES lib/sha1dc_git.c lib/sha1dc/sha1.c lib/sha1dc/ubc_check.c lib/block-sha1/sha1.c lib/sha256/block/sha256.c lib/compat/qsort_s.c)\n \n \n add_compile_definitions(PAGER_ENV=\"LESS=FRX LV=-c\"\n@@ -248,43 +249,43 @@ endif()\n #Platform Specific\n if(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n \tif(CMAKE_C_COMPILER_ID STREQUAL \"MSVC\" OR CMAKE_C_COMPILER_ID STREQUAL \"Clang\")\n-\t\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/vcbuild/include)\n+\t\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/vcbuild/include)\n \t\tadd_compile_definitions(_CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE)\n \tendif()\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/win32)\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/win32)\n \tadd_compile_definitions(HAVE_ALLOCA_H NO_POSIX_GOODIES NATIVE_CRLF NO_UNIX_SOCKETS WIN32\n \t\t\t\t_CONSOLE DETECT_MSYS_TTY STRIP_EXTENSION=\".exe\"  NO_SYMLINK_HEAD UNRELIABLE_FSTAT\n \t\t\t\tNOGDI OBJECT_CREATION_MODE=1 __USE_MINGW_ANSI_STDIO=0\n \t\t\t\tOVERRIDE_STRDUP MMAP_PREVENTS_DELETE USE_WIN32_MMAP\n \t\t\t\tHAVE_WPGMPTR ENSURE_MSYSTEM_IS_SET HAVE_RTLGENRANDOM)\n \tlist(APPEND compat_SOURCES\n-\t\tcompat/mingw.c\n-\t\tcompat/winansi.c\n-\t\tcompat/win32/flush.c\n-\t\tcompat/win32/path-utils.c\n-\t\tcompat/win32/pthread.c\n-\t\tcompat/win32mmap.c\n-\t\tcompat/win32/syslog.c\n-\t\tcompat/win32/trace2_win32_process_info.c\n-\t\tcompat/win32/dirent.c\n-\t\tcompat/strdup.c)\n+\t\tlib/compat/mingw.c\n+\t\tlib/compat/winansi.c\n+\t\tlib/compat/win32/flush.c\n+\t\tlib/compat/win32/path-utils.c\n+\t\tlib/compat/win32/pthread.c\n+\t\tlib/compat/win32mmap.c\n+\t\tlib/compat/win32/syslog.c\n+\t\tlib/compat/win32/trace2_win32_process_info.c\n+\t\tlib/compat/win32/dirent.c\n+\t\tlib/compat/strdup.c)\n \tset(NO_UNIX_SOCKETS 1)\n \n elseif(CMAKE_SYSTEM_NAME STREQUAL \"Linux\")\n \tadd_compile_definitions(PROCFS_EXECUTABLE_PATH=\"/proc/self/exe\" HAVE_DEV_TTY )\n-\tlist(APPEND compat_SOURCES unix-socket.c unix-stream-server.c compat/linux/procinfo.c)\n+\tlist(APPEND compat_SOURCES lib/unix-socket.c lib/unix-stream-server.c lib/compat/linux/procinfo.c)\n elseif(CMAKE_SYSTEM_NAME STREQUAL \"Darwin\")\n-\tlist(APPEND compat_SOURCES compat/darwin/procinfo.c)\n+\tlist(APPEND compat_SOURCES lib/compat/darwin/procinfo.c)\n endif()\n \n if(CMAKE_SYSTEM_NAME STREQUAL \"Windows\")\n-\tlist(APPEND compat_SOURCES compat/simple-ipc/ipc-shared.c compat/simple-ipc/ipc-win32.c)\n+\tlist(APPEND compat_SOURCES lib/compat/simple-ipc/ipc-shared.c lib/compat/simple-ipc/ipc-win32.c)\n \tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n \tset(SUPPORTS_SIMPLE_IPC 1)\n else()\n \t# Simple IPC requires both Unix sockets and pthreads on Unix-based systems.\n \tif(NOT NO_UNIX_SOCKETS AND NOT NO_PTHREADS)\n-\t\tlist(APPEND compat_SOURCES compat/simple-ipc/ipc-shared.c compat/simple-ipc/ipc-unix-socket.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/simple-ipc/ipc-shared.c lib/compat/simple-ipc/ipc-unix-socket.c)\n \t\tadd_compile_definitions(SUPPORTS_SIMPLE_IPC)\n \t\tset(SUPPORTS_SIMPLE_IPC 1)\n \tendif()\n@@ -305,13 +306,13 @@ if(SUPPORTS_SIMPLE_IPC)\n \n \tif(FSMONITOR_DAEMON_BACKEND)\n \t\tadd_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-${FSMONITOR_DAEMON_BACKEND}.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-health-${FSMONITOR_DAEMON_BACKEND}.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-ipc-${FSMONITOR_OS_SETTINGS}.c)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-path-utils-${FSMONITOR_DAEMON_BACKEND}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-listen-${FSMONITOR_DAEMON_BACKEND}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-health-${FSMONITOR_DAEMON_BACKEND}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-ipc-${FSMONITOR_OS_SETTINGS}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-path-utils-${FSMONITOR_DAEMON_BACKEND}.c)\n \n \t\tadd_compile_definitions(HAVE_FSMONITOR_OS_SETTINGS)\n-\t\tlist(APPEND compat_SOURCES compat/fsmonitor/fsm-settings-${FSMONITOR_OS_SETTINGS}.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/fsmonitor/fsm-settings-${FSMONITOR_OS_SETTINGS}.c)\n \tendif()\n endif()\n \n@@ -321,7 +322,7 @@ set(EXE_EXTENSION ${CMAKE_EXECUTABLE_SUFFIX})\n check_include_file(libgen.h HAVE_LIBGEN_H)\n if(NOT HAVE_LIBGEN_H)\n \tadd_compile_definitions(NO_LIBGEN_H)\n-\tlist(APPEND compat_SOURCES compat/basename.c)\n+\tlist(APPEND compat_SOURCES lib/compat/basename.c)\n endif()\n \n check_include_file(sys/sysinfo.h HAVE_SYSINFO)\n@@ -394,42 +395,42 @@ foreach(f ${function_checks})\n endforeach()\n \n if(NOT HAVE_POLL_H OR NOT HAVE_SYS_POLL_H OR NOT HAVE_POLL)\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/poll)\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/poll)\n \tadd_compile_definitions(NO_POLL)\n-\tlist(APPEND compat_SOURCES compat/poll/poll.c)\n+\tlist(APPEND compat_SOURCES lib/compat/poll/poll.c)\n endif()\n \n if(NOT HAVE_STRCASESTR)\n-\tlist(APPEND compat_SOURCES compat/strcasestr.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strcasestr.c)\n endif()\n \n if(NOT HAVE_STRLCPY)\n-\tlist(APPEND compat_SOURCES compat/strlcpy.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strlcpy.c)\n endif()\n \n if(NOT HAVE_STRTOUMAX)\n-\tlist(APPEND compat_SOURCES compat/strtoumax.c compat/strtoimax.c)\n+\tlist(APPEND compat_SOURCES lib/compat/strtoumax.c lib/compat/strtoimax.c)\n endif()\n \n if(NOT HAVE_SETENV)\n-\tlist(APPEND compat_SOURCES compat/setenv.c)\n+\tlist(APPEND compat_SOURCES lib/compat/setenv.c)\n endif()\n \n if(NOT HAVE_PREAD)\n-\tlist(APPEND compat_SOURCES compat/pread.c)\n+\tlist(APPEND compat_SOURCES lib/compat/pread.c)\n endif()\n \n if(NOT HAVE_MEMMEM)\n-\tlist(APPEND compat_SOURCES compat/memmem.c)\n+\tlist(APPEND compat_SOURCES lib/compat/memmem.c)\n endif()\n \n if(NOT WIN32)\n \tif(NOT HAVE_UNSETENV)\n-\t\tlist(APPEND compat_SOURCES compat/unsetenv.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/unsetenv.c)\n \tendif()\n \n \tif(NOT HAVE_HSTRERROR)\n-\t\tlist(APPEND compat_SOURCES compat/hstrerror.c)\n+\t\tlist(APPEND compat_SOURCES lib/compat/hstrerror.c)\n \tendif()\n endif()\n \n@@ -486,7 +487,7 @@ int main(void)\n SNPRINTF_OK)\n if(NOT SNPRINTF_OK)\n \tadd_compile_definitions(SNPRINTF_RETURNS_BOGUS)\n-\tlist(APPEND compat_SOURCES compat/snprintf.c)\n+\tlist(APPEND compat_SOURCES lib/compat/snprintf.c)\n endif()\n \n check_c_source_runs(\"\n@@ -501,7 +502,7 @@ int main(void)\n FREAD_READS_DIRECTORIES_NO)\n if(NOT FREAD_READS_DIRECTORIES_NO)\n \tadd_compile_definitions(FREAD_READS_DIRECTORIES)\n-\tlist(APPEND compat_SOURCES compat/fopen.c)\n+\tlist(APPEND compat_SOURCES lib/compat/fopen.c)\n endif()\n \n check_c_source_compiles(\"\n@@ -516,8 +517,8 @@ int main(void)\n }\"\n HAVE_REGEX)\n if(NOT HAVE_REGEX)\n-\tinclude_directories(${CMAKE_SOURCE_DIR}/compat/regex)\n-\tlist(APPEND compat_SOURCES compat/regex/regex.c )\n+\tinclude_directories(${CMAKE_SOURCE_DIR}/lib/compat/regex)\n+\tlist(APPEND compat_SOURCES lib/compat/regex/regex.c )\n \tadd_compile_definitions(NO_REGEX NO_MBSUPPORT GAWK)\n endif()\n \n@@ -670,10 +671,10 @@ list(TRANSFORM compat_SOURCES PREPEND \"${CMAKE_SOURCE_DIR}/\")\n add_custom_command(OUTPUT \"${CMAKE_BINARY_DIR}/version-def.h\"\n \tCOMMAND \"${SH_EXE}\" \"${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN\"\n \t\t\"${CMAKE_SOURCE_DIR}\"\n-\t\t\"${CMAKE_SOURCE_DIR}/version-def.h.in\"\n+\t\t\"${CMAKE_SOURCE_DIR}/lib/version-def.h.in\"\n \t\t\"${CMAKE_BINARY_DIR}/version-def.h\"\n \tDEPENDS \"${SH_EXE}\" \"${CMAKE_SOURCE_DIR}/GIT-VERSION-GEN\"\n-\t\t\"${CMAKE_SOURCE_DIR}/version-def.h.in\"\n+\t\t\"${CMAKE_SOURCE_DIR}/lib/version-def.h.in\"\n \tVERBATIM)\n list(APPEND libgit_SOURCES \"${CMAKE_BINARY_DIR}/version-def.h\")\n \n@@ -732,7 +733,7 @@ if(WIN32)\n \t\tmessage(FATAL_ERROR \"Unhandled compiler: ${CMAKE_C_COMPILER_ID}\")\n \tendif()\n \n-\tadd_executable(headless-git ${CMAKE_SOURCE_DIR}/compat/win32/headless.c)\n+\tadd_executable(headless-git ${CMAKE_SOURCE_DIR}/lib/compat/win32/headless.c)\n \tif(CMAKE_C_COMPILER_ID STREQUAL \"GNU\" OR CMAKE_C_COMPILER_ID STREQUAL \"Clang\")\n \t\ttarget_link_options(headless-git PUBLIC -municode -Wl,-subsystem,windows)\n \telseif(CMAKE_C_COMPILER_ID STREQUAL \"MSVC\")\n@@ -767,15 +768,15 @@ add_executable(scalar ${CMAKE_SOURCE_DIR}/scalar.c)\n target_link_libraries(scalar common-main)\n \n if(CURL_FOUND)\n-\tadd_library(http_obj OBJECT ${CMAKE_SOURCE_DIR}/http.c)\n+\tadd_library(http_obj OBJECT ${CMAKE_SOURCE_DIR}/lib/http.c)\n \n \tadd_executable(git-imap-send ${CMAKE_SOURCE_DIR}/imap-send.c)\n \ttarget_link_libraries(git-imap-send http_obj common-main ${CURL_LIBRARIES})\n \n-\tadd_executable(git-http-fetch ${CMAKE_SOURCE_DIR}/http-walker.c ${CMAKE_SOURCE_DIR}/http-fetch.c)\n+\tadd_executable(git-http-fetch ${CMAKE_SOURCE_DIR}/lib/http-walker.c ${CMAKE_SOURCE_DIR}/http-fetch.c)\n \ttarget_link_libraries(git-http-fetch http_obj common-main ${CURL_LIBRARIES})\n \n-\tadd_executable(git-remote-http ${CMAKE_SOURCE_DIR}/http-walker.c ${CMAKE_SOURCE_DIR}/remote-curl.c)\n+\tadd_executable(git-remote-http ${CMAKE_SOURCE_DIR}/lib/http-walker.c ${CMAKE_SOURCE_DIR}/remote-curl.c)\n \ttarget_link_libraries(git-remote-http http_obj common-main ${CURL_LIBRARIES} )\n \n \tif(EXPAT_FOUND)\n@@ -1201,7 +1202,7 @@ string(REPLACE \"@USE_LIBPCRE2@\" \"\" git_build_options \"${git_build_options}\")\n string(REPLACE \"@WITH_BREAKING_CHANGES@\" \"\" git_build_options \"${git_build_options}\")\n string(REPLACE \"@X@\" \"${EXE_EXTENSION}\" git_build_options \"${git_build_options}\")\n if(USE_VCPKG)\n-\tstring(APPEND git_build_options \"PATH=\\\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\\\"\\n\")\n+\tstring(APPEND git_build_options \"PATH=\\\"$PATH:$TEST_DIRECTORY/../lib/compat/vcbuild/vcpkg/installed/x64-windows/bin\\\"\\n\")\n endif()\n file(WRITE ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS ${git_build_options})\n \ndiff --git a/git.rc.in b/git.rc.in\nindex e69444eef3..87cdefd50b 100644\n--- a/git.rc.in\n+++ b/git.rc.in\n@@ -21,4 +21,4 @@ BEGIN\n   END\n END\n \n-1 RT_MANIFEST \"compat/win32/git.manifest\"\n+1 RT_MANIFEST \"lib/compat/win32/git.manifest\"\ndiff --git a/abspath.c b/lib/abspath.c\nsimilarity index 100%\nrename from abspath.c\nrename to lib/abspath.c\ndiff --git a/abspath.h b/lib/abspath.h\nsimilarity index 100%\nrename from abspath.h\nrename to lib/abspath.h\ndiff --git a/add-interactive.c b/lib/add-interactive.c\nsimilarity index 100%\nrename from add-interactive.c\nrename to lib/add-interactive.c\ndiff --git a/add-interactive.h b/lib/add-interactive.h\nsimilarity index 100%\nrename from add-interactive.h\nrename to lib/add-interactive.h\ndiff --git a/add-patch.c b/lib/add-patch.c\nsimilarity index 100%\nrename from add-patch.c\nrename to lib/add-patch.c\ndiff --git a/add-patch.h b/lib/add-patch.h\nsimilarity index 100%\nrename from add-patch.h\nrename to lib/add-patch.h\ndiff --git a/advice.c b/lib/advice.c\nsimilarity index 100%\nrename from advice.c\nrename to lib/advice.c\ndiff --git a/advice.h b/lib/advice.h\nsimilarity index 100%\nrename from advice.h\nrename to lib/advice.h\ndiff --git a/alias.c b/lib/alias.c\nsimilarity index 100%\nrename from alias.c\nrename to lib/alias.c\ndiff --git a/alias.h b/lib/alias.h\nsimilarity index 100%\nrename from alias.h\nrename to lib/alias.h\ndiff --git a/alloc.c b/lib/alloc.c\nsimilarity index 100%\nrename from alloc.c\nrename to lib/alloc.c\ndiff --git a/alloc.h b/lib/alloc.h\nsimilarity index 100%\nrename from alloc.h\nrename to lib/alloc.h\ndiff --git a/apply.c b/lib/apply.c\nsimilarity index 100%\nrename from apply.c\nrename to lib/apply.c\ndiff --git a/apply.h b/lib/apply.h\nsimilarity index 100%\nrename from apply.h\nrename to lib/apply.h\ndiff --git a/archive-tar.c b/lib/archive-tar.c\nsimilarity index 100%\nrename from archive-tar.c\nrename to lib/archive-tar.c\ndiff --git a/archive-zip.c b/lib/archive-zip.c\nsimilarity index 100%\nrename from archive-zip.c\nrename to lib/archive-zip.c\ndiff --git a/archive.c b/lib/archive.c\nsimilarity index 100%\nrename from archive.c\nrename to lib/archive.c\ndiff --git a/archive.h b/lib/archive.h\nsimilarity index 100%\nrename from archive.h\nrename to lib/archive.h\ndiff --git a/attr.c b/lib/attr.c\nsimilarity index 100%\nrename from attr.c\nrename to lib/attr.c\ndiff --git a/attr.h b/lib/attr.h\nsimilarity index 100%\nrename from attr.h\nrename to lib/attr.h\ndiff --git a/banned.h b/lib/banned.h\nsimilarity index 100%\nrename from banned.h\nrename to lib/banned.h\ndiff --git a/base85.c b/lib/base85.c\nsimilarity index 100%\nrename from base85.c\nrename to lib/base85.c\ndiff --git a/base85.h b/lib/base85.h\nsimilarity index 100%\nrename from base85.h\nrename to lib/base85.h\ndiff --git a/bisect.c b/lib/bisect.c\nsimilarity index 100%\nrename from bisect.c\nrename to lib/bisect.c\ndiff --git a/bisect.h b/lib/bisect.h\nsimilarity index 100%\nrename from bisect.h\nrename to lib/bisect.h\ndiff --git a/blame.c b/lib/blame.c\nsimilarity index 100%\nrename from blame.c\nrename to lib/blame.c\ndiff --git a/blame.h b/lib/blame.h\nsimilarity index 100%\nrename from blame.h\nrename to lib/blame.h\ndiff --git a/blob.c b/lib/blob.c\nsimilarity index 100%\nrename from blob.c\nrename to lib/blob.c\ndiff --git a/blob.h b/lib/blob.h\nsimilarity index 100%\nrename from blob.h\nrename to lib/blob.h\ndiff --git a/block-sha1/sha1.c b/lib/block-sha1/sha1.c\nsimilarity index 100%\nrename from block-sha1/sha1.c\nrename to lib/block-sha1/sha1.c\ndiff --git a/block-sha1/sha1.h b/lib/block-sha1/sha1.h\nsimilarity index 100%\nrename from block-sha1/sha1.h\nrename to lib/block-sha1/sha1.h\ndiff --git a/bloom.c b/lib/bloom.c\nsimilarity index 100%\nrename from bloom.c\nrename to lib/bloom.c\ndiff --git a/bloom.h b/lib/bloom.h\nsimilarity index 100%\nrename from bloom.h\nrename to lib/bloom.h\ndiff --git a/branch.c b/lib/branch.c\nsimilarity index 100%\nrename from branch.c\nrename to lib/branch.c\ndiff --git a/branch.h b/lib/branch.h\nsimilarity index 100%\nrename from branch.h\nrename to lib/branch.h\ndiff --git a/builtin.h b/lib/builtin.h\nsimilarity index 100%\nrename from builtin.h\nrename to lib/builtin.h\ndiff --git a/bundle-uri.c b/lib/bundle-uri.c\nsimilarity index 100%\nrename from bundle-uri.c\nrename to lib/bundle-uri.c\ndiff --git a/bundle-uri.h b/lib/bundle-uri.h\nsimilarity index 100%\nrename from bundle-uri.h\nrename to lib/bundle-uri.h\ndiff --git a/bundle.c b/lib/bundle.c\nsimilarity index 100%\nrename from bundle.c\nrename to lib/bundle.c\ndiff --git a/bundle.h b/lib/bundle.h\nsimilarity index 100%\nrename from bundle.h\nrename to lib/bundle.h\ndiff --git a/cache-tree.c b/lib/cache-tree.c\nsimilarity index 100%\nrename from cache-tree.c\nrename to lib/cache-tree.c\ndiff --git a/cache-tree.h b/lib/cache-tree.h\nsimilarity index 100%\nrename from cache-tree.h\nrename to lib/cache-tree.h\ndiff --git a/cbtree.c b/lib/cbtree.c\nsimilarity index 100%\nrename from cbtree.c\nrename to lib/cbtree.c\ndiff --git a/cbtree.h b/lib/cbtree.h\nsimilarity index 100%\nrename from cbtree.h\nrename to lib/cbtree.h\ndiff --git a/chdir-notify.c b/lib/chdir-notify.c\nsimilarity index 100%\nrename from chdir-notify.c\nrename to lib/chdir-notify.c\ndiff --git a/chdir-notify.h b/lib/chdir-notify.h\nsimilarity index 100%\nrename from chdir-notify.h\nrename to lib/chdir-notify.h\ndiff --git a/checkout.c b/lib/checkout.c\nsimilarity index 100%\nrename from checkout.c\nrename to lib/checkout.c\ndiff --git a/checkout.h b/lib/checkout.h\nsimilarity index 100%\nrename from checkout.h\nrename to lib/checkout.h\ndiff --git a/chunk-format.c b/lib/chunk-format.c\nsimilarity index 100%\nrename from chunk-format.c\nrename to lib/chunk-format.c\ndiff --git a/chunk-format.h b/lib/chunk-format.h\nsimilarity index 100%\nrename from chunk-format.h\nrename to lib/chunk-format.h\ndiff --git a/color.c b/lib/color.c\nsimilarity index 100%\nrename from color.c\nrename to lib/color.c\ndiff --git a/color.h b/lib/color.h\nsimilarity index 100%\nrename from color.h\nrename to lib/color.h\ndiff --git a/column.c b/lib/column.c\nsimilarity index 100%\nrename from column.c\nrename to lib/column.c\ndiff --git a/column.h b/lib/column.h\nsimilarity index 100%\nrename from column.h\nrename to lib/column.h\ndiff --git a/combine-diff.c b/lib/combine-diff.c\nsimilarity index 100%\nrename from combine-diff.c\nrename to lib/combine-diff.c\ndiff --git a/commit-graph.c b/lib/commit-graph.c\nsimilarity index 100%\nrename from commit-graph.c\nrename to lib/commit-graph.c\ndiff --git a/commit-graph.h b/lib/commit-graph.h\nsimilarity index 100%\nrename from commit-graph.h\nrename to lib/commit-graph.h\ndiff --git a/commit-reach.c b/lib/commit-reach.c\nsimilarity index 100%\nrename from commit-reach.c\nrename to lib/commit-reach.c\ndiff --git a/commit-reach.h b/lib/commit-reach.h\nsimilarity index 100%\nrename from commit-reach.h\nrename to lib/commit-reach.h\ndiff --git a/commit-slab-decl.h b/lib/commit-slab-decl.h\nsimilarity index 100%\nrename from commit-slab-decl.h\nrename to lib/commit-slab-decl.h\ndiff --git a/commit-slab-impl.h b/lib/commit-slab-impl.h\nsimilarity index 100%\nrename from commit-slab-impl.h\nrename to lib/commit-slab-impl.h\ndiff --git a/commit-slab.h b/lib/commit-slab.h\nsimilarity index 100%\nrename from commit-slab.h\nrename to lib/commit-slab.h\ndiff --git a/commit.c b/lib/commit.c\nsimilarity index 100%\nrename from commit.c\nrename to lib/commit.c\ndiff --git a/commit.h b/lib/commit.h\nsimilarity index 100%\nrename from commit.h\nrename to lib/commit.h\ndiff --git a/common-exit.c b/lib/common-exit.c\nsimilarity index 100%\nrename from common-exit.c\nrename to lib/common-exit.c\ndiff --git a/common-init.c b/lib/common-init.c\nsimilarity index 100%\nrename from common-init.c\nrename to lib/common-init.c\ndiff --git a/common-init.h b/lib/common-init.h\nsimilarity index 100%\nrename from common-init.h\nrename to lib/common-init.h\ndiff --git a/compat/.gitattributes b/lib/compat/.gitattributes\nsimilarity index 100%\nrename from compat/.gitattributes\nrename to lib/compat/.gitattributes\ndiff --git a/compat/access.c b/lib/compat/access.c\nsimilarity index 100%\nrename from compat/access.c\nrename to lib/compat/access.c\ndiff --git a/compat/apple-common-crypto.h b/lib/compat/apple-common-crypto.h\nsimilarity index 100%\nrename from compat/apple-common-crypto.h\nrename to lib/compat/apple-common-crypto.h\ndiff --git a/compat/basename.c b/lib/compat/basename.c\nsimilarity index 100%\nrename from compat/basename.c\nrename to lib/compat/basename.c\ndiff --git a/compat/bswap.h b/lib/compat/bswap.h\nsimilarity index 100%\nrename from compat/bswap.h\nrename to lib/compat/bswap.h\ndiff --git a/compat/compiler.h b/lib/compat/compiler.h\nsimilarity index 100%\nrename from compat/compiler.h\nrename to lib/compat/compiler.h\ndiff --git a/compat/darwin/procinfo.c b/lib/compat/darwin/procinfo.c\nsimilarity index 100%\nrename from compat/darwin/procinfo.c\nrename to lib/compat/darwin/procinfo.c\ndiff --git a/compat/disk.h b/lib/compat/disk.h\nsimilarity index 100%\nrename from compat/disk.h\nrename to lib/compat/disk.h\ndiff --git a/compat/fileno.c b/lib/compat/fileno.c\nsimilarity index 100%\nrename from compat/fileno.c\nrename to lib/compat/fileno.c\ndiff --git a/compat/fopen.c b/lib/compat/fopen.c\nsimilarity index 100%\nrename from compat/fopen.c\nrename to lib/compat/fopen.c\ndiff --git a/compat/fsmonitor/fsm-darwin-gcc.h b/lib/compat/fsmonitor/fsm-darwin-gcc.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-darwin-gcc.h\nrename to lib/compat/fsmonitor/fsm-darwin-gcc.h\ndiff --git a/compat/fsmonitor/fsm-health-darwin.c b/lib/compat/fsmonitor/fsm-health-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-darwin.c\nrename to lib/compat/fsmonitor/fsm-health-darwin.c\ndiff --git a/compat/fsmonitor/fsm-health-linux.c b/lib/compat/fsmonitor/fsm-health-linux.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-linux.c\nrename to lib/compat/fsmonitor/fsm-health-linux.c\ndiff --git a/compat/fsmonitor/fsm-health-win32.c b/lib/compat/fsmonitor/fsm-health-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health-win32.c\nrename to lib/compat/fsmonitor/fsm-health-win32.c\ndiff --git a/compat/fsmonitor/fsm-health.h b/lib/compat/fsmonitor/fsm-health.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-health.h\nrename to lib/compat/fsmonitor/fsm-health.h\ndiff --git a/compat/fsmonitor/fsm-ipc-unix.c b/lib/compat/fsmonitor/fsm-ipc-unix.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-ipc-unix.c\nrename to lib/compat/fsmonitor/fsm-ipc-unix.c\ndiff --git a/compat/fsmonitor/fsm-ipc-win32.c b/lib/compat/fsmonitor/fsm-ipc-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-ipc-win32.c\nrename to lib/compat/fsmonitor/fsm-ipc-win32.c\ndiff --git a/compat/fsmonitor/fsm-listen-darwin.c b/lib/compat/fsmonitor/fsm-listen-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-darwin.c\nrename to lib/compat/fsmonitor/fsm-listen-darwin.c\ndiff --git a/compat/fsmonitor/fsm-listen-linux.c b/lib/compat/fsmonitor/fsm-listen-linux.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-linux.c\nrename to lib/compat/fsmonitor/fsm-listen-linux.c\ndiff --git a/compat/fsmonitor/fsm-listen-win32.c b/lib/compat/fsmonitor/fsm-listen-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen-win32.c\nrename to lib/compat/fsmonitor/fsm-listen-win32.c\ndiff --git a/compat/fsmonitor/fsm-listen.h b/lib/compat/fsmonitor/fsm-listen.h\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-listen.h\nrename to lib/compat/fsmonitor/fsm-listen.h\ndiff --git a/compat/fsmonitor/fsm-path-utils-darwin.c b/lib/compat/fsmonitor/fsm-path-utils-darwin.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-darwin.c\nrename to lib/compat/fsmonitor/fsm-path-utils-darwin.c\ndiff --git a/compat/fsmonitor/fsm-path-utils-linux.c b/lib/compat/fsmonitor/fsm-path-utils-linux.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-linux.c\nrename to lib/compat/fsmonitor/fsm-path-utils-linux.c\ndiff --git a/compat/fsmonitor/fsm-path-utils-win32.c b/lib/compat/fsmonitor/fsm-path-utils-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-path-utils-win32.c\nrename to lib/compat/fsmonitor/fsm-path-utils-win32.c\ndiff --git a/compat/fsmonitor/fsm-settings-unix.c b/lib/compat/fsmonitor/fsm-settings-unix.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-settings-unix.c\nrename to lib/compat/fsmonitor/fsm-settings-unix.c\ndiff --git a/compat/fsmonitor/fsm-settings-win32.c b/lib/compat/fsmonitor/fsm-settings-win32.c\nsimilarity index 100%\nrename from compat/fsmonitor/fsm-settings-win32.c\nrename to lib/compat/fsmonitor/fsm-settings-win32.c\ndiff --git a/compat/hstrerror.c b/lib/compat/hstrerror.c\nsimilarity index 100%\nrename from compat/hstrerror.c\nrename to lib/compat/hstrerror.c\ndiff --git a/compat/inet_ntop.c b/lib/compat/inet_ntop.c\nsimilarity index 100%\nrename from compat/inet_ntop.c\nrename to lib/compat/inet_ntop.c\ndiff --git a/compat/inet_pton.c b/lib/compat/inet_pton.c\nsimilarity index 100%\nrename from compat/inet_pton.c\nrename to lib/compat/inet_pton.c\ndiff --git a/compat/linux/procinfo.c b/lib/compat/linux/procinfo.c\nsimilarity index 100%\nrename from compat/linux/procinfo.c\nrename to lib/compat/linux/procinfo.c\ndiff --git a/compat/memmem.c b/lib/compat/memmem.c\nsimilarity index 100%\nrename from compat/memmem.c\nrename to lib/compat/memmem.c\ndiff --git a/compat/mingw-posix.h b/lib/compat/mingw-posix.h\nsimilarity index 100%\nrename from compat/mingw-posix.h\nrename to lib/compat/mingw-posix.h\ndiff --git a/compat/mingw.c b/lib/compat/mingw.c\nsimilarity index 100%\nrename from compat/mingw.c\nrename to lib/compat/mingw.c\ndiff --git a/compat/mingw.h b/lib/compat/mingw.h\nsimilarity index 100%\nrename from compat/mingw.h\nrename to lib/compat/mingw.h\ndiff --git a/compat/mkdir.c b/lib/compat/mkdir.c\nsimilarity index 100%\nrename from compat/mkdir.c\nrename to lib/compat/mkdir.c\ndiff --git a/compat/mmap.c b/lib/compat/mmap.c\nsimilarity index 100%\nrename from compat/mmap.c\nrename to lib/compat/mmap.c\ndiff --git a/compat/msvc-posix.h b/lib/compat/msvc-posix.h\nsimilarity index 100%\nrename from compat/msvc-posix.h\nrename to lib/compat/msvc-posix.h\ndiff --git a/compat/msvc.c b/lib/compat/msvc.c\nsimilarity index 100%\nrename from compat/msvc.c\nrename to lib/compat/msvc.c\ndiff --git a/compat/msvc.h b/lib/compat/msvc.h\nsimilarity index 100%\nrename from compat/msvc.h\nrename to lib/compat/msvc.h\ndiff --git a/compat/nonblock.c b/lib/compat/nonblock.c\nsimilarity index 100%\nrename from compat/nonblock.c\nrename to lib/compat/nonblock.c\ndiff --git a/compat/nonblock.h b/lib/compat/nonblock.h\nsimilarity index 100%\nrename from compat/nonblock.h\nrename to lib/compat/nonblock.h\ndiff --git a/compat/obstack.c b/lib/compat/obstack.c\nsimilarity index 100%\nrename from compat/obstack.c\nrename to lib/compat/obstack.c\ndiff --git a/compat/obstack.h b/lib/compat/obstack.h\nsimilarity index 100%\nrename from compat/obstack.h\nrename to lib/compat/obstack.h\ndiff --git a/compat/open.c b/lib/compat/open.c\nsimilarity index 100%\nrename from compat/open.c\nrename to lib/compat/open.c\ndiff --git a/compat/poll/poll.c b/lib/compat/poll/poll.c\nsimilarity index 100%\nrename from compat/poll/poll.c\nrename to lib/compat/poll/poll.c\ndiff --git a/compat/poll/poll.h b/lib/compat/poll/poll.h\nsimilarity index 100%\nrename from compat/poll/poll.h\nrename to lib/compat/poll/poll.h\ndiff --git a/compat/posix.h b/lib/compat/posix.h\nsimilarity index 100%\nrename from compat/posix.h\nrename to lib/compat/posix.h\ndiff --git a/compat/pread.c b/lib/compat/pread.c\nsimilarity index 100%\nrename from compat/pread.c\nrename to lib/compat/pread.c\ndiff --git a/compat/precompose_utf8.c b/lib/compat/precompose_utf8.c\nsimilarity index 100%\nrename from compat/precompose_utf8.c\nrename to lib/compat/precompose_utf8.c\ndiff --git a/compat/precompose_utf8.h b/lib/compat/precompose_utf8.h\nsimilarity index 100%\nrename from compat/precompose_utf8.h\nrename to lib/compat/precompose_utf8.h\ndiff --git a/compat/qsort_s.c b/lib/compat/qsort_s.c\nsimilarity index 100%\nrename from compat/qsort_s.c\nrename to lib/compat/qsort_s.c\ndiff --git a/compat/regcomp_enhanced.c b/lib/compat/regcomp_enhanced.c\nsimilarity index 100%\nrename from compat/regcomp_enhanced.c\nrename to lib/compat/regcomp_enhanced.c\ndiff --git a/compat/regex/regcomp.c b/lib/compat/regex/regcomp.c\nsimilarity index 100%\nrename from compat/regex/regcomp.c\nrename to lib/compat/regex/regcomp.c\ndiff --git a/compat/regex/regex.c b/lib/compat/regex/regex.c\nsimilarity index 100%\nrename from compat/regex/regex.c\nrename to lib/compat/regex/regex.c\ndiff --git a/compat/regex/regex.h b/lib/compat/regex/regex.h\nsimilarity index 100%\nrename from compat/regex/regex.h\nrename to lib/compat/regex/regex.h\ndiff --git a/compat/regex/regex_internal.c b/lib/compat/regex/regex_internal.c\nsimilarity index 100%\nrename from compat/regex/regex_internal.c\nrename to lib/compat/regex/regex_internal.c\ndiff --git a/compat/regex/regex_internal.h b/lib/compat/regex/regex_internal.h\nsimilarity index 100%\nrename from compat/regex/regex_internal.h\nrename to lib/compat/regex/regex_internal.h\ndiff --git a/compat/regex/regexec.c b/lib/compat/regex/regexec.c\nsimilarity index 100%\nrename from compat/regex/regexec.c\nrename to lib/compat/regex/regexec.c\ndiff --git a/compat/setenv.c b/lib/compat/setenv.c\nsimilarity index 100%\nrename from compat/setenv.c\nrename to lib/compat/setenv.c\ndiff --git a/compat/sha1-chunked.c b/lib/compat/sha1-chunked.c\nsimilarity index 100%\nrename from compat/sha1-chunked.c\nrename to lib/compat/sha1-chunked.c\ndiff --git a/compat/sha1-chunked.h b/lib/compat/sha1-chunked.h\nsimilarity index 100%\nrename from compat/sha1-chunked.h\nrename to lib/compat/sha1-chunked.h\ndiff --git a/compat/simple-ipc/ipc-shared.c b/lib/compat/simple-ipc/ipc-shared.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-shared.c\nrename to lib/compat/simple-ipc/ipc-shared.c\ndiff --git a/compat/simple-ipc/ipc-unix-socket.c b/lib/compat/simple-ipc/ipc-unix-socket.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-unix-socket.c\nrename to lib/compat/simple-ipc/ipc-unix-socket.c\ndiff --git a/compat/simple-ipc/ipc-win32.c b/lib/compat/simple-ipc/ipc-win32.c\nsimilarity index 100%\nrename from compat/simple-ipc/ipc-win32.c\nrename to lib/compat/simple-ipc/ipc-win32.c\ndiff --git a/compat/snprintf.c b/lib/compat/snprintf.c\nsimilarity index 100%\nrename from compat/snprintf.c\nrename to lib/compat/snprintf.c\ndiff --git a/compat/stat.c b/lib/compat/stat.c\nsimilarity index 100%\nrename from compat/stat.c\nrename to lib/compat/stat.c\ndiff --git a/compat/strcasestr.c b/lib/compat/strcasestr.c\nsimilarity index 100%\nrename from compat/strcasestr.c\nrename to lib/compat/strcasestr.c\ndiff --git a/compat/strdup.c b/lib/compat/strdup.c\nsimilarity index 100%\nrename from compat/strdup.c\nrename to lib/compat/strdup.c\ndiff --git a/compat/strlcpy.c b/lib/compat/strlcpy.c\nsimilarity index 100%\nrename from compat/strlcpy.c\nrename to lib/compat/strlcpy.c\ndiff --git a/compat/strtoimax.c b/lib/compat/strtoimax.c\nsimilarity index 100%\nrename from compat/strtoimax.c\nrename to lib/compat/strtoimax.c\ndiff --git a/compat/strtoumax.c b/lib/compat/strtoumax.c\nsimilarity index 100%\nrename from compat/strtoumax.c\nrename to lib/compat/strtoumax.c\ndiff --git a/compat/stub/procinfo.c b/lib/compat/stub/procinfo.c\nsimilarity index 100%\nrename from compat/stub/procinfo.c\nrename to lib/compat/stub/procinfo.c\ndiff --git a/compat/terminal.c b/lib/compat/terminal.c\nsimilarity index 100%\nrename from compat/terminal.c\nrename to lib/compat/terminal.c\ndiff --git a/compat/terminal.h b/lib/compat/terminal.h\nsimilarity index 100%\nrename from compat/terminal.h\nrename to lib/compat/terminal.h\ndiff --git a/compat/unsetenv.c b/lib/compat/unsetenv.c\nsimilarity index 100%\nrename from compat/unsetenv.c\nrename to lib/compat/unsetenv.c\ndiff --git a/compat/vcbuild/.gitignore b/lib/compat/vcbuild/.gitignore\nsimilarity index 100%\nrename from compat/vcbuild/.gitignore\nrename to lib/compat/vcbuild/.gitignore\ndiff --git a/compat/vcbuild/README b/lib/compat/vcbuild/README\nsimilarity index 94%\nrename from compat/vcbuild/README\nrename to lib/compat/vcbuild/README\nindex 29ec1d0f10..63ee00a4ef 100644\n--- a/compat/vcbuild/README\n+++ b/lib/compat/vcbuild/README\n@@ -6,17 +6,17 @@ The Steps to Build Git with VS2015 or VS2017 from the command line.\n    Prompt or from an SDK bash window:\n \n    $ cd <repo_root>\n-   $ ./compat/vcbuild/vcpkg_install.bat\n+   $ ./lib/compat/vcbuild/vcpkg_install.bat\n \n    The vcpkg tools and all of the third-party sources will be installed\n    in this folder:\n-      <repo_root>/compat/vcbuild/vcpkg/\n+      <repo_root>/lib/compat/vcbuild/vcpkg/\n \n    A file will be created with a set of Makefile macros pointing to a\n    unified \"include\", \"lib\", and \"bin\" directory (release and debug) for\n    all of the required packages.  This file will be included by the main\n    Makefile:\n-      <repo_root>/compat/vcbuild/MSVC-DEFS-GEN\n+      <repo_root>/lib/compat/vcbuild/MSVC-DEFS-GEN\n \n 2. OPTIONALLY copy the third-party *.dll and *.pdb files into the repo\n    root to make it easier to run and debug git.exe without having to\n@@ -26,8 +26,8 @@ The Steps to Build Git with VS2015 or VS2017 from the command line.\n    Use ONE of the following forms which should match how you want to\n    compile git.exe.\n \n-   $ ./compat/vcbuild/vcpkg_copy_dlls.bat debug\n-   $ ./compat/vcbuild/vcpkg_copy_dlls.bat release\n+   $ ./lib/compat/vcbuild/vcpkg_copy_dlls.bat debug\n+   $ ./lib/compat/vcbuild/vcpkg_copy_dlls.bat release\n \n 3. Build git using MSVC from an SDK bash window using one of the\n    following commands:\ndiff --git a/compat/vcbuild/find_vs_env.bat b/lib/compat/vcbuild/find_vs_env.bat\nsimilarity index 98%\nrename from compat/vcbuild/find_vs_env.bat\nrename to lib/compat/vcbuild/find_vs_env.bat\nindex b35d264c0e..30e884b3d7 100644\n--- a/compat/vcbuild/find_vs_env.bat\n+++ b/lib/compat/vcbuild/find_vs_env.bat\n@@ -25,7 +25,7 @@ REM\n REM The output of this script should be written to a make \"include\n REM file\" and referenced by the top-level Makefile.\n REM\n-REM See \"config.mak.uname\" (look for compat/vcbuild/MSVC-DEFS-GEN).\n+REM See \"config.mak.uname\" (look for lib/compat/vcbuild/MSVC-DEFS-GEN).\n REM ================================================================\n REM The provided command prompts are custom to each VS release and\n REM filled with lots of internal knowledge (such as Registry settings);\ndiff --git a/compat/vcbuild/include/sys/param.h b/lib/compat/vcbuild/include/sys/param.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/param.h\nrename to lib/compat/vcbuild/include/sys/param.h\ndiff --git a/compat/vcbuild/include/sys/time.h b/lib/compat/vcbuild/include/sys/time.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/time.h\nrename to lib/compat/vcbuild/include/sys/time.h\ndiff --git a/compat/vcbuild/include/sys/utime.h b/lib/compat/vcbuild/include/sys/utime.h\nsimilarity index 100%\nrename from compat/vcbuild/include/sys/utime.h\nrename to lib/compat/vcbuild/include/sys/utime.h\ndiff --git a/compat/vcbuild/include/unistd.h b/lib/compat/vcbuild/include/unistd.h\nsimilarity index 100%\nrename from compat/vcbuild/include/unistd.h\nrename to lib/compat/vcbuild/include/unistd.h\ndiff --git a/compat/vcbuild/include/utime.h b/lib/compat/vcbuild/include/utime.h\nsimilarity index 100%\nrename from compat/vcbuild/include/utime.h\nrename to lib/compat/vcbuild/include/utime.h\ndiff --git a/compat/vcbuild/scripts/clink.pl b/lib/compat/vcbuild/scripts/clink.pl\nsimilarity index 100%\nrename from compat/vcbuild/scripts/clink.pl\nrename to lib/compat/vcbuild/scripts/clink.pl\ndiff --git a/compat/vcbuild/scripts/lib.pl b/lib/compat/vcbuild/scripts/lib.pl\nsimilarity index 100%\nrename from compat/vcbuild/scripts/lib.pl\nrename to lib/compat/vcbuild/scripts/lib.pl\ndiff --git a/compat/vcbuild/vcpkg_copy_dlls.bat b/lib/compat/vcbuild/vcpkg_copy_dlls.bat\nsimilarity index 100%\nrename from compat/vcbuild/vcpkg_copy_dlls.bat\nrename to lib/compat/vcbuild/vcpkg_copy_dlls.bat\ndiff --git a/compat/vcbuild/vcpkg_install.bat b/lib/compat/vcbuild/vcpkg_install.bat\nsimilarity index 95%\nrename from compat/vcbuild/vcpkg_install.bat\nrename to lib/compat/vcbuild/vcpkg_install.bat\nindex ebd0bad242..64c1b199e0 100644\n--- a/compat/vcbuild/vcpkg_install.bat\n+++ b/lib/compat/vcbuild/vcpkg_install.bat\n@@ -5,10 +5,10 @@ REM it to build the third-party libraries that git requires when it\n REM is built using MSVC.\n REM\n REM [1] Install VCPKG.\n-REM     [a] Create <root>/compat/vcbuild/vcpkg/\n+REM     [a] Create <root>/lib/compat/vcbuild/vcpkg/\n REM     [b] Download \"vcpkg\".\n REM     [c] Compile using the currently installed version of VS.\n-REM     [d] Create <root>/compat/vcbuild/vcpkg/vcpkg.exe\n+REM     [d] Create <root>/lib/compat/vcbuild/vcpkg/vcpkg.exe\n REM\n REM [2] Install third-party libraries.\n REM     [a] Download each (which may also install CMAKE).\ndiff --git a/compat/win32.h b/lib/compat/win32.h\nsimilarity index 100%\nrename from compat/win32.h\nrename to lib/compat/win32.h\ndiff --git a/compat/win32/alloca.h b/lib/compat/win32/alloca.h\nsimilarity index 100%\nrename from compat/win32/alloca.h\nrename to lib/compat/win32/alloca.h\ndiff --git a/compat/win32/dirent.c b/lib/compat/win32/dirent.c\nsimilarity index 100%\nrename from compat/win32/dirent.c\nrename to lib/compat/win32/dirent.c\ndiff --git a/compat/win32/dirent.h b/lib/compat/win32/dirent.h\nsimilarity index 100%\nrename from compat/win32/dirent.h\nrename to lib/compat/win32/dirent.h\ndiff --git a/compat/win32/exit-process.h b/lib/compat/win32/exit-process.h\nsimilarity index 100%\nrename from compat/win32/exit-process.h\nrename to lib/compat/win32/exit-process.h\ndiff --git a/compat/win32/flush.c b/lib/compat/win32/flush.c\nsimilarity index 100%\nrename from compat/win32/flush.c\nrename to lib/compat/win32/flush.c\ndiff --git a/compat/win32/git.manifest b/lib/compat/win32/git.manifest\nsimilarity index 100%\nrename from compat/win32/git.manifest\nrename to lib/compat/win32/git.manifest\ndiff --git a/compat/win32/headless.c b/lib/compat/win32/headless.c\nsimilarity index 100%\nrename from compat/win32/headless.c\nrename to lib/compat/win32/headless.c\ndiff --git a/compat/win32/lazyload.h b/lib/compat/win32/lazyload.h\nsimilarity index 100%\nrename from compat/win32/lazyload.h\nrename to lib/compat/win32/lazyload.h\ndiff --git a/compat/win32/path-utils.c b/lib/compat/win32/path-utils.c\nsimilarity index 100%\nrename from compat/win32/path-utils.c\nrename to lib/compat/win32/path-utils.c\ndiff --git a/compat/win32/path-utils.h b/lib/compat/win32/path-utils.h\nsimilarity index 100%\nrename from compat/win32/path-utils.h\nrename to lib/compat/win32/path-utils.h\ndiff --git a/compat/win32/pthread.c b/lib/compat/win32/pthread.c\nsimilarity index 100%\nrename from compat/win32/pthread.c\nrename to lib/compat/win32/pthread.c\ndiff --git a/compat/win32/pthread.h b/lib/compat/win32/pthread.h\nsimilarity index 100%\nrename from compat/win32/pthread.h\nrename to lib/compat/win32/pthread.h\ndiff --git a/compat/win32/syslog.c b/lib/compat/win32/syslog.c\nsimilarity index 100%\nrename from compat/win32/syslog.c\nrename to lib/compat/win32/syslog.c\ndiff --git a/compat/win32/syslog.h b/lib/compat/win32/syslog.h\nsimilarity index 100%\nrename from compat/win32/syslog.h\nrename to lib/compat/win32/syslog.h\ndiff --git a/compat/win32/trace2_win32_process_info.c b/lib/compat/win32/trace2_win32_process_info.c\nsimilarity index 100%\nrename from compat/win32/trace2_win32_process_info.c\nrename to lib/compat/win32/trace2_win32_process_info.c\ndiff --git a/compat/win32mmap.c b/lib/compat/win32mmap.c\nsimilarity index 100%\nrename from compat/win32mmap.c\nrename to lib/compat/win32mmap.c\ndiff --git a/compat/winansi.c b/lib/compat/winansi.c\nsimilarity index 100%\nrename from compat/winansi.c\nrename to lib/compat/winansi.c\ndiff --git a/compat/zlib-compat.h b/lib/compat/zlib-compat.h\nsimilarity index 100%\nrename from compat/zlib-compat.h\nrename to lib/compat/zlib-compat.h\ndiff --git a/compiler-tricks/not-constant.c b/lib/compiler-tricks/not-constant.c\nsimilarity index 100%\nrename from compiler-tricks/not-constant.c\nrename to lib/compiler-tricks/not-constant.c\ndiff --git a/config.c b/lib/config.c\nsimilarity index 100%\nrename from config.c\nrename to lib/config.c\ndiff --git a/config.h b/lib/config.h\nsimilarity index 100%\nrename from config.h\nrename to lib/config.h\ndiff --git a/connect.c b/lib/connect.c\nsimilarity index 100%\nrename from connect.c\nrename to lib/connect.c\ndiff --git a/connect.h b/lib/connect.h\nsimilarity index 100%\nrename from connect.h\nrename to lib/connect.h\ndiff --git a/connected.c b/lib/connected.c\nsimilarity index 100%\nrename from connected.c\nrename to lib/connected.c\ndiff --git a/connected.h b/lib/connected.h\nsimilarity index 100%\nrename from connected.h\nrename to lib/connected.h\ndiff --git a/convert.c b/lib/convert.c\nsimilarity index 100%\nrename from convert.c\nrename to lib/convert.c\ndiff --git a/convert.h b/lib/convert.h\nsimilarity index 100%\nrename from convert.h\nrename to lib/convert.h\ndiff --git a/copy.c b/lib/copy.c\nsimilarity index 100%\nrename from copy.c\nrename to lib/copy.c\ndiff --git a/copy.h b/lib/copy.h\nsimilarity index 100%\nrename from copy.h\nrename to lib/copy.h\ndiff --git a/credential.c b/lib/credential.c\nsimilarity index 100%\nrename from credential.c\nrename to lib/credential.c\ndiff --git a/credential.h b/lib/credential.h\nsimilarity index 100%\nrename from credential.h\nrename to lib/credential.h\ndiff --git a/csum-file.c b/lib/csum-file.c\nsimilarity index 100%\nrename from csum-file.c\nrename to lib/csum-file.c\ndiff --git a/csum-file.h b/lib/csum-file.h\nsimilarity index 100%\nrename from csum-file.h\nrename to lib/csum-file.h\ndiff --git a/ctype.c b/lib/ctype.c\nsimilarity index 100%\nrename from ctype.c\nrename to lib/ctype.c\ndiff --git a/date.c b/lib/date.c\nsimilarity index 100%\nrename from date.c\nrename to lib/date.c\ndiff --git a/date.h b/lib/date.h\nsimilarity index 100%\nrename from date.h\nrename to lib/date.h\ndiff --git a/decorate.c b/lib/decorate.c\nsimilarity index 100%\nrename from decorate.c\nrename to lib/decorate.c\ndiff --git a/decorate.h b/lib/decorate.h\nsimilarity index 100%\nrename from decorate.h\nrename to lib/decorate.h\ndiff --git a/delta-islands.c b/lib/delta-islands.c\nsimilarity index 100%\nrename from delta-islands.c\nrename to lib/delta-islands.c\ndiff --git a/delta-islands.h b/lib/delta-islands.h\nsimilarity index 100%\nrename from delta-islands.h\nrename to lib/delta-islands.h\ndiff --git a/delta.h b/lib/delta.h\nsimilarity index 100%\nrename from delta.h\nrename to lib/delta.h\ndiff --git a/diagnose.c b/lib/diagnose.c\nsimilarity index 100%\nrename from diagnose.c\nrename to lib/diagnose.c\ndiff --git a/diagnose.h b/lib/diagnose.h\nsimilarity index 100%\nrename from diagnose.h\nrename to lib/diagnose.h\ndiff --git a/diff-delta.c b/lib/diff-delta.c\nsimilarity index 100%\nrename from diff-delta.c\nrename to lib/diff-delta.c\ndiff --git a/diff-lib.c b/lib/diff-lib.c\nsimilarity index 100%\nrename from diff-lib.c\nrename to lib/diff-lib.c\ndiff --git a/diff-merges.c b/lib/diff-merges.c\nsimilarity index 100%\nrename from diff-merges.c\nrename to lib/diff-merges.c\ndiff --git a/diff-merges.h b/lib/diff-merges.h\nsimilarity index 100%\nrename from diff-merges.h\nrename to lib/diff-merges.h\ndiff --git a/diff-no-index.c b/lib/diff-no-index.c\nsimilarity index 100%\nrename from diff-no-index.c\nrename to lib/diff-no-index.c\ndiff --git a/diff.c b/lib/diff.c\nsimilarity index 100%\nrename from diff.c\nrename to lib/diff.c\ndiff --git a/diff.h b/lib/diff.h\nsimilarity index 100%\nrename from diff.h\nrename to lib/diff.h\ndiff --git a/diffcore-break.c b/lib/diffcore-break.c\nsimilarity index 100%\nrename from diffcore-break.c\nrename to lib/diffcore-break.c\ndiff --git a/diffcore-delta.c b/lib/diffcore-delta.c\nsimilarity index 100%\nrename from diffcore-delta.c\nrename to lib/diffcore-delta.c\ndiff --git a/diffcore-order.c b/lib/diffcore-order.c\nsimilarity index 100%\nrename from diffcore-order.c\nrename to lib/diffcore-order.c\ndiff --git a/diffcore-pickaxe.c b/lib/diffcore-pickaxe.c\nsimilarity index 100%\nrename from diffcore-pickaxe.c\nrename to lib/diffcore-pickaxe.c\ndiff --git a/diffcore-rename.c b/lib/diffcore-rename.c\nsimilarity index 100%\nrename from diffcore-rename.c\nrename to lib/diffcore-rename.c\ndiff --git a/diffcore-rotate.c b/lib/diffcore-rotate.c\nsimilarity index 100%\nrename from diffcore-rotate.c\nrename to lib/diffcore-rotate.c\ndiff --git a/diffcore.h b/lib/diffcore.h\nsimilarity index 100%\nrename from diffcore.h\nrename to lib/diffcore.h\ndiff --git a/dir-iterator.c b/lib/dir-iterator.c\nsimilarity index 100%\nrename from dir-iterator.c\nrename to lib/dir-iterator.c\ndiff --git a/dir-iterator.h b/lib/dir-iterator.h\nsimilarity index 100%\nrename from dir-iterator.h\nrename to lib/dir-iterator.h\ndiff --git a/dir.c b/lib/dir.c\nsimilarity index 100%\nrename from dir.c\nrename to lib/dir.c\ndiff --git a/dir.h b/lib/dir.h\nsimilarity index 100%\nrename from dir.h\nrename to lib/dir.h\ndiff --git a/editor.c b/lib/editor.c\nsimilarity index 100%\nrename from editor.c\nrename to lib/editor.c\ndiff --git a/editor.h b/lib/editor.h\nsimilarity index 100%\nrename from editor.h\nrename to lib/editor.h\ndiff --git a/entry.c b/lib/entry.c\nsimilarity index 100%\nrename from entry.c\nrename to lib/entry.c\ndiff --git a/entry.h b/lib/entry.h\nsimilarity index 100%\nrename from entry.h\nrename to lib/entry.h\ndiff --git a/environment.c b/lib/environment.c\nsimilarity index 100%\nrename from environment.c\nrename to lib/environment.c\ndiff --git a/environment.h b/lib/environment.h\nsimilarity index 100%\nrename from environment.h\nrename to lib/environment.h\ndiff --git a/ewah/bitmap.c b/lib/ewah/bitmap.c\nsimilarity index 100%\nrename from ewah/bitmap.c\nrename to lib/ewah/bitmap.c\ndiff --git a/ewah/ewah_bitmap.c b/lib/ewah/ewah_bitmap.c\nsimilarity index 100%\nrename from ewah/ewah_bitmap.c\nrename to lib/ewah/ewah_bitmap.c\ndiff --git a/ewah/ewah_io.c b/lib/ewah/ewah_io.c\nsimilarity index 100%\nrename from ewah/ewah_io.c\nrename to lib/ewah/ewah_io.c\ndiff --git a/ewah/ewah_rlw.c b/lib/ewah/ewah_rlw.c\nsimilarity index 100%\nrename from ewah/ewah_rlw.c\nrename to lib/ewah/ewah_rlw.c\ndiff --git a/ewah/ewok.h b/lib/ewah/ewok.h\nsimilarity index 100%\nrename from ewah/ewok.h\nrename to lib/ewah/ewok.h\ndiff --git a/ewah/ewok_rlw.h b/lib/ewah/ewok_rlw.h\nsimilarity index 100%\nrename from ewah/ewok_rlw.h\nrename to lib/ewah/ewok_rlw.h\ndiff --git a/exec-cmd.c b/lib/exec-cmd.c\nsimilarity index 100%\nrename from exec-cmd.c\nrename to lib/exec-cmd.c\ndiff --git a/exec-cmd.h b/lib/exec-cmd.h\nsimilarity index 100%\nrename from exec-cmd.h\nrename to lib/exec-cmd.h\ndiff --git a/fetch-negotiator.c b/lib/fetch-negotiator.c\nsimilarity index 100%\nrename from fetch-negotiator.c\nrename to lib/fetch-negotiator.c\ndiff --git a/fetch-negotiator.h b/lib/fetch-negotiator.h\nsimilarity index 100%\nrename from fetch-negotiator.h\nrename to lib/fetch-negotiator.h\ndiff --git a/fetch-pack.c b/lib/fetch-pack.c\nsimilarity index 100%\nrename from fetch-pack.c\nrename to lib/fetch-pack.c\ndiff --git a/fetch-pack.h b/lib/fetch-pack.h\nsimilarity index 100%\nrename from fetch-pack.h\nrename to lib/fetch-pack.h\ndiff --git a/fmt-merge-msg.c b/lib/fmt-merge-msg.c\nsimilarity index 100%\nrename from fmt-merge-msg.c\nrename to lib/fmt-merge-msg.c\ndiff --git a/fmt-merge-msg.h b/lib/fmt-merge-msg.h\nsimilarity index 100%\nrename from fmt-merge-msg.h\nrename to lib/fmt-merge-msg.h\ndiff --git a/for-each-ref.h b/lib/for-each-ref.h\nsimilarity index 100%\nrename from for-each-ref.h\nrename to lib/for-each-ref.h\ndiff --git a/fsck.c b/lib/fsck.c\nsimilarity index 100%\nrename from fsck.c\nrename to lib/fsck.c\ndiff --git a/fsck.h b/lib/fsck.h\nsimilarity index 100%\nrename from fsck.h\nrename to lib/fsck.h\ndiff --git a/fsmonitor--daemon.h b/lib/fsmonitor--daemon.h\nsimilarity index 100%\nrename from fsmonitor--daemon.h\nrename to lib/fsmonitor--daemon.h\ndiff --git a/fsmonitor-ipc.c b/lib/fsmonitor-ipc.c\nsimilarity index 100%\nrename from fsmonitor-ipc.c\nrename to lib/fsmonitor-ipc.c\ndiff --git a/fsmonitor-ipc.h b/lib/fsmonitor-ipc.h\nsimilarity index 100%\nrename from fsmonitor-ipc.h\nrename to lib/fsmonitor-ipc.h\ndiff --git a/fsmonitor-ll.h b/lib/fsmonitor-ll.h\nsimilarity index 100%\nrename from fsmonitor-ll.h\nrename to lib/fsmonitor-ll.h\ndiff --git a/fsmonitor-path-utils.h b/lib/fsmonitor-path-utils.h\nsimilarity index 100%\nrename from fsmonitor-path-utils.h\nrename to lib/fsmonitor-path-utils.h\ndiff --git a/fsmonitor-settings.c b/lib/fsmonitor-settings.c\nsimilarity index 100%\nrename from fsmonitor-settings.c\nrename to lib/fsmonitor-settings.c\ndiff --git a/fsmonitor-settings.h b/lib/fsmonitor-settings.h\nsimilarity index 100%\nrename from fsmonitor-settings.h\nrename to lib/fsmonitor-settings.h\ndiff --git a/fsmonitor.c b/lib/fsmonitor.c\nsimilarity index 100%\nrename from fsmonitor.c\nrename to lib/fsmonitor.c\ndiff --git a/fsmonitor.h b/lib/fsmonitor.h\nsimilarity index 100%\nrename from fsmonitor.h\nrename to lib/fsmonitor.h\ndiff --git a/gettext.c b/lib/gettext.c\nsimilarity index 100%\nrename from gettext.c\nrename to lib/gettext.c\ndiff --git a/gettext.h b/lib/gettext.h\nsimilarity index 100%\nrename from gettext.h\nrename to lib/gettext.h\ndiff --git a/git-compat-util.h b/lib/git-compat-util.h\nsimilarity index 100%\nrename from git-compat-util.h\nrename to lib/git-compat-util.h\ndiff --git a/git-curl-compat.h b/lib/git-curl-compat.h\nsimilarity index 100%\nrename from git-curl-compat.h\nrename to lib/git-curl-compat.h\ndiff --git a/git-zlib.c b/lib/git-zlib.c\nsimilarity index 100%\nrename from git-zlib.c\nrename to lib/git-zlib.c\ndiff --git a/git-zlib.h b/lib/git-zlib.h\nsimilarity index 100%\nrename from git-zlib.h\nrename to lib/git-zlib.h\ndiff --git a/gpg-interface.c b/lib/gpg-interface.c\nsimilarity index 100%\nrename from gpg-interface.c\nrename to lib/gpg-interface.c\ndiff --git a/gpg-interface.h b/lib/gpg-interface.h\nsimilarity index 100%\nrename from gpg-interface.h\nrename to lib/gpg-interface.h\ndiff --git a/graph.c b/lib/graph.c\nsimilarity index 100%\nrename from graph.c\nrename to lib/graph.c\ndiff --git a/graph.h b/lib/graph.h\nsimilarity index 100%\nrename from graph.h\nrename to lib/graph.h\ndiff --git a/grep.c b/lib/grep.c\nsimilarity index 100%\nrename from grep.c\nrename to lib/grep.c\ndiff --git a/grep.h b/lib/grep.h\nsimilarity index 100%\nrename from grep.h\nrename to lib/grep.h\ndiff --git a/hash-lookup.c b/lib/hash-lookup.c\nsimilarity index 100%\nrename from hash-lookup.c\nrename to lib/hash-lookup.c\ndiff --git a/hash-lookup.h b/lib/hash-lookup.h\nsimilarity index 100%\nrename from hash-lookup.h\nrename to lib/hash-lookup.h\ndiff --git a/hash.c b/lib/hash.c\nsimilarity index 100%\nrename from hash.c\nrename to lib/hash.c\ndiff --git a/hash.h b/lib/hash.h\nsimilarity index 100%\nrename from hash.h\nrename to lib/hash.h\ndiff --git a/hashmap.c b/lib/hashmap.c\nsimilarity index 100%\nrename from hashmap.c\nrename to lib/hashmap.c\ndiff --git a/hashmap.h b/lib/hashmap.h\nsimilarity index 100%\nrename from hashmap.h\nrename to lib/hashmap.h\ndiff --git a/help.c b/lib/help.c\nsimilarity index 100%\nrename from help.c\nrename to lib/help.c\ndiff --git a/help.h b/lib/help.h\nsimilarity index 100%\nrename from help.h\nrename to lib/help.h\ndiff --git a/hex-ll.c b/lib/hex-ll.c\nsimilarity index 100%\nrename from hex-ll.c\nrename to lib/hex-ll.c\ndiff --git a/hex-ll.h b/lib/hex-ll.h\nsimilarity index 100%\nrename from hex-ll.h\nrename to lib/hex-ll.h\ndiff --git a/hex.c b/lib/hex.c\nsimilarity index 100%\nrename from hex.c\nrename to lib/hex.c\ndiff --git a/hex.h b/lib/hex.h\nsimilarity index 100%\nrename from hex.h\nrename to lib/hex.h\ndiff --git a/hook.c b/lib/hook.c\nsimilarity index 100%\nrename from hook.c\nrename to lib/hook.c\ndiff --git a/hook.h b/lib/hook.h\nsimilarity index 100%\nrename from hook.h\nrename to lib/hook.h\ndiff --git a/http-walker.c b/lib/http-walker.c\nsimilarity index 100%\nrename from http-walker.c\nrename to lib/http-walker.c\ndiff --git a/http.c b/lib/http.c\nsimilarity index 100%\nrename from http.c\nrename to lib/http.c\ndiff --git a/http.h b/lib/http.h\nsimilarity index 100%\nrename from http.h\nrename to lib/http.h\ndiff --git a/ident.c b/lib/ident.c\nsimilarity index 100%\nrename from ident.c\nrename to lib/ident.c\ndiff --git a/ident.h b/lib/ident.h\nsimilarity index 100%\nrename from ident.h\nrename to lib/ident.h\ndiff --git a/iterator.h b/lib/iterator.h\nsimilarity index 100%\nrename from iterator.h\nrename to lib/iterator.h\ndiff --git a/json-writer.c b/lib/json-writer.c\nsimilarity index 100%\nrename from json-writer.c\nrename to lib/json-writer.c\ndiff --git a/json-writer.h b/lib/json-writer.h\nsimilarity index 100%\nrename from json-writer.h\nrename to lib/json-writer.h\ndiff --git a/khash.h b/lib/khash.h\nsimilarity index 100%\nrename from khash.h\nrename to lib/khash.h\ndiff --git a/kwset.c b/lib/kwset.c\nsimilarity index 100%\nrename from kwset.c\nrename to lib/kwset.c\ndiff --git a/kwset.h b/lib/kwset.h\nsimilarity index 100%\nrename from kwset.h\nrename to lib/kwset.h\ndiff --git a/levenshtein.c b/lib/levenshtein.c\nsimilarity index 100%\nrename from levenshtein.c\nrename to lib/levenshtein.c\ndiff --git a/levenshtein.h b/lib/levenshtein.h\nsimilarity index 100%\nrename from levenshtein.h\nrename to lib/levenshtein.h\ndiff --git a/line-log.c b/lib/line-log.c\nsimilarity index 100%\nrename from line-log.c\nrename to lib/line-log.c\ndiff --git a/line-log.h b/lib/line-log.h\nsimilarity index 100%\nrename from line-log.h\nrename to lib/line-log.h\ndiff --git a/line-range.c b/lib/line-range.c\nsimilarity index 100%\nrename from line-range.c\nrename to lib/line-range.c\ndiff --git a/line-range.h b/lib/line-range.h\nsimilarity index 100%\nrename from line-range.h\nrename to lib/line-range.h\ndiff --git a/linear-assignment.c b/lib/linear-assignment.c\nsimilarity index 100%\nrename from linear-assignment.c\nrename to lib/linear-assignment.c\ndiff --git a/linear-assignment.h b/lib/linear-assignment.h\nsimilarity index 100%\nrename from linear-assignment.h\nrename to lib/linear-assignment.h\ndiff --git a/list-objects-filter-options.c b/lib/list-objects-filter-options.c\nsimilarity index 100%\nrename from list-objects-filter-options.c\nrename to lib/list-objects-filter-options.c\ndiff --git a/list-objects-filter-options.h b/lib/list-objects-filter-options.h\nsimilarity index 100%\nrename from list-objects-filter-options.h\nrename to lib/list-objects-filter-options.h\ndiff --git a/list-objects-filter.c b/lib/list-objects-filter.c\nsimilarity index 100%\nrename from list-objects-filter.c\nrename to lib/list-objects-filter.c\ndiff --git a/list-objects-filter.h b/lib/list-objects-filter.h\nsimilarity index 100%\nrename from list-objects-filter.h\nrename to lib/list-objects-filter.h\ndiff --git a/list-objects.c b/lib/list-objects.c\nsimilarity index 100%\nrename from list-objects.c\nrename to lib/list-objects.c\ndiff --git a/list-objects.h b/lib/list-objects.h\nsimilarity index 100%\nrename from list-objects.h\nrename to lib/list-objects.h\ndiff --git a/list.h b/lib/list.h\nsimilarity index 100%\nrename from list.h\nrename to lib/list.h\ndiff --git a/lockfile.c b/lib/lockfile.c\nsimilarity index 100%\nrename from lockfile.c\nrename to lib/lockfile.c\ndiff --git a/lockfile.h b/lib/lockfile.h\nsimilarity index 100%\nrename from lockfile.h\nrename to lib/lockfile.h\ndiff --git a/log-tree.c b/lib/log-tree.c\nsimilarity index 100%\nrename from log-tree.c\nrename to lib/log-tree.c\ndiff --git a/log-tree.h b/lib/log-tree.h\nsimilarity index 100%\nrename from log-tree.h\nrename to lib/log-tree.h\ndiff --git a/loose.c b/lib/loose.c\nsimilarity index 100%\nrename from loose.c\nrename to lib/loose.c\ndiff --git a/loose.h b/lib/loose.h\nsimilarity index 100%\nrename from loose.h\nrename to lib/loose.h\ndiff --git a/ls-refs.c b/lib/ls-refs.c\nsimilarity index 100%\nrename from ls-refs.c\nrename to lib/ls-refs.c\ndiff --git a/ls-refs.h b/lib/ls-refs.h\nsimilarity index 100%\nrename from ls-refs.h\nrename to lib/ls-refs.h\ndiff --git a/mailinfo.c b/lib/mailinfo.c\nsimilarity index 100%\nrename from mailinfo.c\nrename to lib/mailinfo.c\ndiff --git a/mailinfo.h b/lib/mailinfo.h\nsimilarity index 100%\nrename from mailinfo.h\nrename to lib/mailinfo.h\ndiff --git a/mailmap.c b/lib/mailmap.c\nsimilarity index 100%\nrename from mailmap.c\nrename to lib/mailmap.c\ndiff --git a/mailmap.h b/lib/mailmap.h\nsimilarity index 100%\nrename from mailmap.h\nrename to lib/mailmap.h\ndiff --git a/match-trees.c b/lib/match-trees.c\nsimilarity index 100%\nrename from match-trees.c\nrename to lib/match-trees.c\ndiff --git a/match-trees.h b/lib/match-trees.h\nsimilarity index 100%\nrename from match-trees.h\nrename to lib/match-trees.h\ndiff --git a/mem-pool.c b/lib/mem-pool.c\nsimilarity index 100%\nrename from mem-pool.c\nrename to lib/mem-pool.c\ndiff --git a/mem-pool.h b/lib/mem-pool.h\nsimilarity index 100%\nrename from mem-pool.h\nrename to lib/mem-pool.h\ndiff --git a/merge-blobs.c b/lib/merge-blobs.c\nsimilarity index 100%\nrename from merge-blobs.c\nrename to lib/merge-blobs.c\ndiff --git a/merge-blobs.h b/lib/merge-blobs.h\nsimilarity index 100%\nrename from merge-blobs.h\nrename to lib/merge-blobs.h\ndiff --git a/merge-ll.c b/lib/merge-ll.c\nsimilarity index 100%\nrename from merge-ll.c\nrename to lib/merge-ll.c\ndiff --git a/merge-ll.h b/lib/merge-ll.h\nsimilarity index 100%\nrename from merge-ll.h\nrename to lib/merge-ll.h\ndiff --git a/merge-ort-wrappers.c b/lib/merge-ort-wrappers.c\nsimilarity index 100%\nrename from merge-ort-wrappers.c\nrename to lib/merge-ort-wrappers.c\ndiff --git a/merge-ort-wrappers.h b/lib/merge-ort-wrappers.h\nsimilarity index 100%\nrename from merge-ort-wrappers.h\nrename to lib/merge-ort-wrappers.h\ndiff --git a/merge-ort.c b/lib/merge-ort.c\nsimilarity index 100%\nrename from merge-ort.c\nrename to lib/merge-ort.c\ndiff --git a/merge-ort.h b/lib/merge-ort.h\nsimilarity index 100%\nrename from merge-ort.h\nrename to lib/merge-ort.h\ndiff --git a/merge.c b/lib/merge.c\nsimilarity index 100%\nrename from merge.c\nrename to lib/merge.c\ndiff --git a/merge.h b/lib/merge.h\nsimilarity index 100%\nrename from merge.h\nrename to lib/merge.h\ndiff --git a/mergesort.h b/lib/mergesort.h\nsimilarity index 100%\nrename from mergesort.h\nrename to lib/mergesort.h\ndiff --git a/midx-write.c b/lib/midx-write.c\nsimilarity index 100%\nrename from midx-write.c\nrename to lib/midx-write.c\ndiff --git a/midx.c b/lib/midx.c\nsimilarity index 100%\nrename from midx.c\nrename to lib/midx.c\ndiff --git a/midx.h b/lib/midx.h\nsimilarity index 100%\nrename from midx.h\nrename to lib/midx.h\ndiff --git a/name-hash.c b/lib/name-hash.c\nsimilarity index 100%\nrename from name-hash.c\nrename to lib/name-hash.c\ndiff --git a/name-hash.h b/lib/name-hash.h\nsimilarity index 100%\nrename from name-hash.h\nrename to lib/name-hash.h\ndiff --git a/negotiator/default.c b/lib/negotiator/default.c\nsimilarity index 100%\nrename from negotiator/default.c\nrename to lib/negotiator/default.c\ndiff --git a/negotiator/default.h b/lib/negotiator/default.h\nsimilarity index 100%\nrename from negotiator/default.h\nrename to lib/negotiator/default.h\ndiff --git a/negotiator/noop.c b/lib/negotiator/noop.c\nsimilarity index 100%\nrename from negotiator/noop.c\nrename to lib/negotiator/noop.c\ndiff --git a/negotiator/noop.h b/lib/negotiator/noop.h\nsimilarity index 100%\nrename from negotiator/noop.h\nrename to lib/negotiator/noop.h\ndiff --git a/negotiator/skipping.c b/lib/negotiator/skipping.c\nsimilarity index 100%\nrename from negotiator/skipping.c\nrename to lib/negotiator/skipping.c\ndiff --git a/negotiator/skipping.h b/lib/negotiator/skipping.h\nsimilarity index 100%\nrename from negotiator/skipping.h\nrename to lib/negotiator/skipping.h\ndiff --git a/notes-cache.c b/lib/notes-cache.c\nsimilarity index 100%\nrename from notes-cache.c\nrename to lib/notes-cache.c\ndiff --git a/notes-cache.h b/lib/notes-cache.h\nsimilarity index 100%\nrename from notes-cache.h\nrename to lib/notes-cache.h\ndiff --git a/notes-merge.c b/lib/notes-merge.c\nsimilarity index 100%\nrename from notes-merge.c\nrename to lib/notes-merge.c\ndiff --git a/notes-merge.h b/lib/notes-merge.h\nsimilarity index 100%\nrename from notes-merge.h\nrename to lib/notes-merge.h\ndiff --git a/notes-utils.c b/lib/notes-utils.c\nsimilarity index 100%\nrename from notes-utils.c\nrename to lib/notes-utils.c\ndiff --git a/notes-utils.h b/lib/notes-utils.h\nsimilarity index 100%\nrename from notes-utils.h\nrename to lib/notes-utils.h\ndiff --git a/notes.c b/lib/notes.c\nsimilarity index 100%\nrename from notes.c\nrename to lib/notes.c\ndiff --git a/notes.h b/lib/notes.h\nsimilarity index 100%\nrename from notes.h\nrename to lib/notes.h\ndiff --git a/object-file-convert.c b/lib/object-file-convert.c\nsimilarity index 100%\nrename from object-file-convert.c\nrename to lib/object-file-convert.c\ndiff --git a/object-file-convert.h b/lib/object-file-convert.h\nsimilarity index 100%\nrename from object-file-convert.h\nrename to lib/object-file-convert.h\ndiff --git a/object-file.c b/lib/object-file.c\nsimilarity index 100%\nrename from object-file.c\nrename to lib/object-file.c\ndiff --git a/object-file.h b/lib/object-file.h\nsimilarity index 100%\nrename from object-file.h\nrename to lib/object-file.h\ndiff --git a/object-name.c b/lib/object-name.c\nsimilarity index 100%\nrename from object-name.c\nrename to lib/object-name.c\ndiff --git a/object-name.h b/lib/object-name.h\nsimilarity index 100%\nrename from object-name.h\nrename to lib/object-name.h\ndiff --git a/object.c b/lib/object.c\nsimilarity index 100%\nrename from object.c\nrename to lib/object.c\ndiff --git a/object.h b/lib/object.h\nsimilarity index 100%\nrename from object.h\nrename to lib/object.h\ndiff --git a/odb.c b/lib/odb.c\nsimilarity index 100%\nrename from odb.c\nrename to lib/odb.c\ndiff --git a/odb.h b/lib/odb.h\nsimilarity index 100%\nrename from odb.h\nrename to lib/odb.h\ndiff --git a/odb/source-files.c b/lib/odb/source-files.c\nsimilarity index 100%\nrename from odb/source-files.c\nrename to lib/odb/source-files.c\ndiff --git a/odb/source-files.h b/lib/odb/source-files.h\nsimilarity index 100%\nrename from odb/source-files.h\nrename to lib/odb/source-files.h\ndiff --git a/odb/source-inmemory.c b/lib/odb/source-inmemory.c\nsimilarity index 100%\nrename from odb/source-inmemory.c\nrename to lib/odb/source-inmemory.c\ndiff --git a/odb/source-inmemory.h b/lib/odb/source-inmemory.h\nsimilarity index 100%\nrename from odb/source-inmemory.h\nrename to lib/odb/source-inmemory.h\ndiff --git a/odb/source-loose.c b/lib/odb/source-loose.c\nsimilarity index 100%\nrename from odb/source-loose.c\nrename to lib/odb/source-loose.c\ndiff --git a/odb/source-loose.h b/lib/odb/source-loose.h\nsimilarity index 100%\nrename from odb/source-loose.h\nrename to lib/odb/source-loose.h\ndiff --git a/odb/source-packed.c b/lib/odb/source-packed.c\nsimilarity index 100%\nrename from odb/source-packed.c\nrename to lib/odb/source-packed.c\ndiff --git a/odb/source-packed.h b/lib/odb/source-packed.h\nsimilarity index 100%\nrename from odb/source-packed.h\nrename to lib/odb/source-packed.h\ndiff --git a/odb/source.c b/lib/odb/source.c\nsimilarity index 100%\nrename from odb/source.c\nrename to lib/odb/source.c\ndiff --git a/odb/source.h b/lib/odb/source.h\nsimilarity index 100%\nrename from odb/source.h\nrename to lib/odb/source.h\ndiff --git a/odb/streaming.c b/lib/odb/streaming.c\nsimilarity index 100%\nrename from odb/streaming.c\nrename to lib/odb/streaming.c\ndiff --git a/odb/streaming.h b/lib/odb/streaming.h\nsimilarity index 100%\nrename from odb/streaming.h\nrename to lib/odb/streaming.h\ndiff --git a/odb/transaction.c b/lib/odb/transaction.c\nsimilarity index 100%\nrename from odb/transaction.c\nrename to lib/odb/transaction.c\ndiff --git a/odb/transaction.h b/lib/odb/transaction.h\nsimilarity index 100%\nrename from odb/transaction.h\nrename to lib/odb/transaction.h\ndiff --git a/oid-array.c b/lib/oid-array.c\nsimilarity index 100%\nrename from oid-array.c\nrename to lib/oid-array.c\ndiff --git a/oid-array.h b/lib/oid-array.h\nsimilarity index 100%\nrename from oid-array.h\nrename to lib/oid-array.h\ndiff --git a/oidmap.c b/lib/oidmap.c\nsimilarity index 100%\nrename from oidmap.c\nrename to lib/oidmap.c\ndiff --git a/oidmap.h b/lib/oidmap.h\nsimilarity index 100%\nrename from oidmap.h\nrename to lib/oidmap.h\ndiff --git a/oidset.c b/lib/oidset.c\nsimilarity index 100%\nrename from oidset.c\nrename to lib/oidset.c\ndiff --git a/oidset.h b/lib/oidset.h\nsimilarity index 100%\nrename from oidset.h\nrename to lib/oidset.h\ndiff --git a/oidtree.c b/lib/oidtree.c\nsimilarity index 100%\nrename from oidtree.c\nrename to lib/oidtree.c\ndiff --git a/oidtree.h b/lib/oidtree.h\nsimilarity index 100%\nrename from oidtree.h\nrename to lib/oidtree.h\ndiff --git a/pack-bitmap-write.c b/lib/pack-bitmap-write.c\nsimilarity index 100%\nrename from pack-bitmap-write.c\nrename to lib/pack-bitmap-write.c\ndiff --git a/pack-bitmap.c b/lib/pack-bitmap.c\nsimilarity index 100%\nrename from pack-bitmap.c\nrename to lib/pack-bitmap.c\ndiff --git a/pack-bitmap.h b/lib/pack-bitmap.h\nsimilarity index 100%\nrename from pack-bitmap.h\nrename to lib/pack-bitmap.h\ndiff --git a/pack-check.c b/lib/pack-check.c\nsimilarity index 100%\nrename from pack-check.c\nrename to lib/pack-check.c\ndiff --git a/pack-mtimes.c b/lib/pack-mtimes.c\nsimilarity index 100%\nrename from pack-mtimes.c\nrename to lib/pack-mtimes.c\ndiff --git a/pack-mtimes.h b/lib/pack-mtimes.h\nsimilarity index 100%\nrename from pack-mtimes.h\nrename to lib/pack-mtimes.h\ndiff --git a/pack-objects.c b/lib/pack-objects.c\nsimilarity index 100%\nrename from pack-objects.c\nrename to lib/pack-objects.c\ndiff --git a/pack-objects.h b/lib/pack-objects.h\nsimilarity index 100%\nrename from pack-objects.h\nrename to lib/pack-objects.h\ndiff --git a/pack-refs.c b/lib/pack-refs.c\nsimilarity index 100%\nrename from pack-refs.c\nrename to lib/pack-refs.c\ndiff --git a/pack-refs.h b/lib/pack-refs.h\nsimilarity index 100%\nrename from pack-refs.h\nrename to lib/pack-refs.h\ndiff --git a/pack-revindex.c b/lib/pack-revindex.c\nsimilarity index 100%\nrename from pack-revindex.c\nrename to lib/pack-revindex.c\ndiff --git a/pack-revindex.h b/lib/pack-revindex.h\nsimilarity index 100%\nrename from pack-revindex.h\nrename to lib/pack-revindex.h\ndiff --git a/pack-write.c b/lib/pack-write.c\nsimilarity index 100%\nrename from pack-write.c\nrename to lib/pack-write.c\ndiff --git a/pack.h b/lib/pack.h\nsimilarity index 100%\nrename from pack.h\nrename to lib/pack.h\ndiff --git a/packfile-list.c b/lib/packfile-list.c\nsimilarity index 100%\nrename from packfile-list.c\nrename to lib/packfile-list.c\ndiff --git a/packfile-list.h b/lib/packfile-list.h\nsimilarity index 100%\nrename from packfile-list.h\nrename to lib/packfile-list.h\ndiff --git a/packfile.c b/lib/packfile.c\nsimilarity index 100%\nrename from packfile.c\nrename to lib/packfile.c\ndiff --git a/packfile.h b/lib/packfile.h\nsimilarity index 100%\nrename from packfile.h\nrename to lib/packfile.h\ndiff --git a/pager.c b/lib/pager.c\nsimilarity index 100%\nrename from pager.c\nrename to lib/pager.c\ndiff --git a/pager.h b/lib/pager.h\nsimilarity index 100%\nrename from pager.h\nrename to lib/pager.h\ndiff --git a/parallel-checkout.c b/lib/parallel-checkout.c\nsimilarity index 100%\nrename from parallel-checkout.c\nrename to lib/parallel-checkout.c\ndiff --git a/parallel-checkout.h b/lib/parallel-checkout.h\nsimilarity index 100%\nrename from parallel-checkout.h\nrename to lib/parallel-checkout.h\ndiff --git a/parse-options-cb.c b/lib/parse-options-cb.c\nsimilarity index 100%\nrename from parse-options-cb.c\nrename to lib/parse-options-cb.c\ndiff --git a/parse-options.c b/lib/parse-options.c\nsimilarity index 100%\nrename from parse-options.c\nrename to lib/parse-options.c\ndiff --git a/parse-options.h b/lib/parse-options.h\nsimilarity index 100%\nrename from parse-options.h\nrename to lib/parse-options.h\ndiff --git a/parse.c b/lib/parse.c\nsimilarity index 100%\nrename from parse.c\nrename to lib/parse.c\ndiff --git a/parse.h b/lib/parse.h\nsimilarity index 100%\nrename from parse.h\nrename to lib/parse.h\ndiff --git a/patch-delta.c b/lib/patch-delta.c\nsimilarity index 100%\nrename from patch-delta.c\nrename to lib/patch-delta.c\ndiff --git a/patch-ids.c b/lib/patch-ids.c\nsimilarity index 100%\nrename from patch-ids.c\nrename to lib/patch-ids.c\ndiff --git a/patch-ids.h b/lib/patch-ids.h\nsimilarity index 100%\nrename from patch-ids.h\nrename to lib/patch-ids.h\ndiff --git a/path-walk.c b/lib/path-walk.c\nsimilarity index 100%\nrename from path-walk.c\nrename to lib/path-walk.c\ndiff --git a/path-walk.h b/lib/path-walk.h\nsimilarity index 100%\nrename from path-walk.h\nrename to lib/path-walk.h\ndiff --git a/path.c b/lib/path.c\nsimilarity index 100%\nrename from path.c\nrename to lib/path.c\ndiff --git a/path.h b/lib/path.h\nsimilarity index 100%\nrename from path.h\nrename to lib/path.h\ndiff --git a/pathspec.c b/lib/pathspec.c\nsimilarity index 100%\nrename from pathspec.c\nrename to lib/pathspec.c\ndiff --git a/pathspec.h b/lib/pathspec.h\nsimilarity index 100%\nrename from pathspec.h\nrename to lib/pathspec.h\ndiff --git a/pkt-line.c b/lib/pkt-line.c\nsimilarity index 100%\nrename from pkt-line.c\nrename to lib/pkt-line.c\ndiff --git a/pkt-line.h b/lib/pkt-line.h\nsimilarity index 100%\nrename from pkt-line.h\nrename to lib/pkt-line.h\ndiff --git a/preload-index.c b/lib/preload-index.c\nsimilarity index 100%\nrename from preload-index.c\nrename to lib/preload-index.c\ndiff --git a/preload-index.h b/lib/preload-index.h\nsimilarity index 100%\nrename from preload-index.h\nrename to lib/preload-index.h\ndiff --git a/pretty.c b/lib/pretty.c\nsimilarity index 100%\nrename from pretty.c\nrename to lib/pretty.c\ndiff --git a/pretty.h b/lib/pretty.h\nsimilarity index 100%\nrename from pretty.h\nrename to lib/pretty.h\ndiff --git a/prio-queue.c b/lib/prio-queue.c\nsimilarity index 100%\nrename from prio-queue.c\nrename to lib/prio-queue.c\ndiff --git a/prio-queue.h b/lib/prio-queue.h\nsimilarity index 100%\nrename from prio-queue.h\nrename to lib/prio-queue.h\ndiff --git a/progress.c b/lib/progress.c\nsimilarity index 100%\nrename from progress.c\nrename to lib/progress.c\ndiff --git a/progress.h b/lib/progress.h\nsimilarity index 100%\nrename from progress.h\nrename to lib/progress.h\ndiff --git a/promisor-remote.c b/lib/promisor-remote.c\nsimilarity index 100%\nrename from promisor-remote.c\nrename to lib/promisor-remote.c\ndiff --git a/promisor-remote.h b/lib/promisor-remote.h\nsimilarity index 100%\nrename from promisor-remote.h\nrename to lib/promisor-remote.h\ndiff --git a/prompt.c b/lib/prompt.c\nsimilarity index 100%\nrename from prompt.c\nrename to lib/prompt.c\ndiff --git a/prompt.h b/lib/prompt.h\nsimilarity index 100%\nrename from prompt.h\nrename to lib/prompt.h\ndiff --git a/protocol-caps.c b/lib/protocol-caps.c\nsimilarity index 100%\nrename from protocol-caps.c\nrename to lib/protocol-caps.c\ndiff --git a/protocol-caps.h b/lib/protocol-caps.h\nsimilarity index 100%\nrename from protocol-caps.h\nrename to lib/protocol-caps.h\ndiff --git a/protocol.c b/lib/protocol.c\nsimilarity index 100%\nrename from protocol.c\nrename to lib/protocol.c\ndiff --git a/protocol.h b/lib/protocol.h\nsimilarity index 100%\nrename from protocol.h\nrename to lib/protocol.h\ndiff --git a/prune-packed.c b/lib/prune-packed.c\nsimilarity index 100%\nrename from prune-packed.c\nrename to lib/prune-packed.c\ndiff --git a/prune-packed.h b/lib/prune-packed.h\nsimilarity index 100%\nrename from prune-packed.h\nrename to lib/prune-packed.h\ndiff --git a/pseudo-merge.c b/lib/pseudo-merge.c\nsimilarity index 100%\nrename from pseudo-merge.c\nrename to lib/pseudo-merge.c\ndiff --git a/pseudo-merge.h b/lib/pseudo-merge.h\nsimilarity index 100%\nrename from pseudo-merge.h\nrename to lib/pseudo-merge.h\ndiff --git a/quote.c b/lib/quote.c\nsimilarity index 100%\nrename from quote.c\nrename to lib/quote.c\ndiff --git a/quote.h b/lib/quote.h\nsimilarity index 100%\nrename from quote.h\nrename to lib/quote.h\ndiff --git a/range-diff.c b/lib/range-diff.c\nsimilarity index 100%\nrename from range-diff.c\nrename to lib/range-diff.c\ndiff --git a/range-diff.h b/lib/range-diff.h\nsimilarity index 100%\nrename from range-diff.h\nrename to lib/range-diff.h\ndiff --git a/reachable.c b/lib/reachable.c\nsimilarity index 100%\nrename from reachable.c\nrename to lib/reachable.c\ndiff --git a/reachable.h b/lib/reachable.h\nsimilarity index 100%\nrename from reachable.h\nrename to lib/reachable.h\ndiff --git a/read-cache-ll.h b/lib/read-cache-ll.h\nsimilarity index 100%\nrename from read-cache-ll.h\nrename to lib/read-cache-ll.h\ndiff --git a/read-cache.c b/lib/read-cache.c\nsimilarity index 100%\nrename from read-cache.c\nrename to lib/read-cache.c\ndiff --git a/read-cache.h b/lib/read-cache.h\nsimilarity index 100%\nrename from read-cache.h\nrename to lib/read-cache.h\ndiff --git a/rebase-interactive.c b/lib/rebase-interactive.c\nsimilarity index 100%\nrename from rebase-interactive.c\nrename to lib/rebase-interactive.c\ndiff --git a/rebase-interactive.h b/lib/rebase-interactive.h\nsimilarity index 100%\nrename from rebase-interactive.h\nrename to lib/rebase-interactive.h\ndiff --git a/rebase.c b/lib/rebase.c\nsimilarity index 100%\nrename from rebase.c\nrename to lib/rebase.c\ndiff --git a/rebase.h b/lib/rebase.h\nsimilarity index 100%\nrename from rebase.h\nrename to lib/rebase.h\ndiff --git a/ref-filter.c b/lib/ref-filter.c\nsimilarity index 100%\nrename from ref-filter.c\nrename to lib/ref-filter.c\ndiff --git a/ref-filter.h b/lib/ref-filter.h\nsimilarity index 100%\nrename from ref-filter.h\nrename to lib/ref-filter.h\ndiff --git a/reflog-walk.c b/lib/reflog-walk.c\nsimilarity index 100%\nrename from reflog-walk.c\nrename to lib/reflog-walk.c\ndiff --git a/reflog-walk.h b/lib/reflog-walk.h\nsimilarity index 100%\nrename from reflog-walk.h\nrename to lib/reflog-walk.h\ndiff --git a/reflog.c b/lib/reflog.c\nsimilarity index 100%\nrename from reflog.c\nrename to lib/reflog.c\ndiff --git a/reflog.h b/lib/reflog.h\nsimilarity index 100%\nrename from reflog.h\nrename to lib/reflog.h\ndiff --git a/refs.c b/lib/refs.c\nsimilarity index 100%\nrename from refs.c\nrename to lib/refs.c\ndiff --git a/refs.h b/lib/refs.h\nsimilarity index 100%\nrename from refs.h\nrename to lib/refs.h\ndiff --git a/refs/debug.c b/lib/refs/debug.c\nsimilarity index 100%\nrename from refs/debug.c\nrename to lib/refs/debug.c\ndiff --git a/refs/files-backend.c b/lib/refs/files-backend.c\nsimilarity index 100%\nrename from refs/files-backend.c\nrename to lib/refs/files-backend.c\ndiff --git a/refs/iterator.c b/lib/refs/iterator.c\nsimilarity index 100%\nrename from refs/iterator.c\nrename to lib/refs/iterator.c\ndiff --git a/refs/packed-backend.c b/lib/refs/packed-backend.c\nsimilarity index 100%\nrename from refs/packed-backend.c\nrename to lib/refs/packed-backend.c\ndiff --git a/refs/packed-backend.h b/lib/refs/packed-backend.h\nsimilarity index 100%\nrename from refs/packed-backend.h\nrename to lib/refs/packed-backend.h\ndiff --git a/refs/ref-cache.c b/lib/refs/ref-cache.c\nsimilarity index 100%\nrename from refs/ref-cache.c\nrename to lib/refs/ref-cache.c\ndiff --git a/refs/ref-cache.h b/lib/refs/ref-cache.h\nsimilarity index 100%\nrename from refs/ref-cache.h\nrename to lib/refs/ref-cache.h\ndiff --git a/refs/refs-internal.h b/lib/refs/refs-internal.h\nsimilarity index 100%\nrename from refs/refs-internal.h\nrename to lib/refs/refs-internal.h\ndiff --git a/refs/reftable-backend.c b/lib/refs/reftable-backend.c\nsimilarity index 100%\nrename from refs/reftable-backend.c\nrename to lib/refs/reftable-backend.c\ndiff --git a/refspec.c b/lib/refspec.c\nsimilarity index 100%\nrename from refspec.c\nrename to lib/refspec.c\ndiff --git a/refspec.h b/lib/refspec.h\nsimilarity index 100%\nrename from refspec.h\nrename to lib/refspec.h\ndiff --git a/reftable/LICENSE b/lib/reftable/LICENSE\nsimilarity index 100%\nrename from reftable/LICENSE\nrename to lib/reftable/LICENSE\ndiff --git a/reftable/basics.c b/lib/reftable/basics.c\nsimilarity index 100%\nrename from reftable/basics.c\nrename to lib/reftable/basics.c\ndiff --git a/reftable/basics.h b/lib/reftable/basics.h\nsimilarity index 100%\nrename from reftable/basics.h\nrename to lib/reftable/basics.h\ndiff --git a/reftable/block.c b/lib/reftable/block.c\nsimilarity index 100%\nrename from reftable/block.c\nrename to lib/reftable/block.c\ndiff --git a/reftable/block.h b/lib/reftable/block.h\nsimilarity index 100%\nrename from reftable/block.h\nrename to lib/reftable/block.h\ndiff --git a/reftable/blocksource.c b/lib/reftable/blocksource.c\nsimilarity index 100%\nrename from reftable/blocksource.c\nrename to lib/reftable/blocksource.c\ndiff --git a/reftable/blocksource.h b/lib/reftable/blocksource.h\nsimilarity index 100%\nrename from reftable/blocksource.h\nrename to lib/reftable/blocksource.h\ndiff --git a/reftable/constants.h b/lib/reftable/constants.h\nsimilarity index 100%\nrename from reftable/constants.h\nrename to lib/reftable/constants.h\ndiff --git a/reftable/error.c b/lib/reftable/error.c\nsimilarity index 100%\nrename from reftable/error.c\nrename to lib/reftable/error.c\ndiff --git a/reftable/fsck.c b/lib/reftable/fsck.c\nsimilarity index 100%\nrename from reftable/fsck.c\nrename to lib/reftable/fsck.c\ndiff --git a/reftable/iter.c b/lib/reftable/iter.c\nsimilarity index 100%\nrename from reftable/iter.c\nrename to lib/reftable/iter.c\ndiff --git a/reftable/iter.h b/lib/reftable/iter.h\nsimilarity index 100%\nrename from reftable/iter.h\nrename to lib/reftable/iter.h\ndiff --git a/reftable/merged.c b/lib/reftable/merged.c\nsimilarity index 100%\nrename from reftable/merged.c\nrename to lib/reftable/merged.c\ndiff --git a/reftable/merged.h b/lib/reftable/merged.h\nsimilarity index 100%\nrename from reftable/merged.h\nrename to lib/reftable/merged.h\ndiff --git a/reftable/pq.c b/lib/reftable/pq.c\nsimilarity index 100%\nrename from reftable/pq.c\nrename to lib/reftable/pq.c\ndiff --git a/reftable/pq.h b/lib/reftable/pq.h\nsimilarity index 100%\nrename from reftable/pq.h\nrename to lib/reftable/pq.h\ndiff --git a/reftable/record.c b/lib/reftable/record.c\nsimilarity index 100%\nrename from reftable/record.c\nrename to lib/reftable/record.c\ndiff --git a/reftable/record.h b/lib/reftable/record.h\nsimilarity index 100%\nrename from reftable/record.h\nrename to lib/reftable/record.h\ndiff --git a/reftable/reftable-basics.h b/lib/reftable/reftable-basics.h\nsimilarity index 100%\nrename from reftable/reftable-basics.h\nrename to lib/reftable/reftable-basics.h\ndiff --git a/reftable/reftable-block.h b/lib/reftable/reftable-block.h\nsimilarity index 100%\nrename from reftable/reftable-block.h\nrename to lib/reftable/reftable-block.h\ndiff --git a/reftable/reftable-blocksource.h b/lib/reftable/reftable-blocksource.h\nsimilarity index 100%\nrename from reftable/reftable-blocksource.h\nrename to lib/reftable/reftable-blocksource.h\ndiff --git a/reftable/reftable-constants.h b/lib/reftable/reftable-constants.h\nsimilarity index 100%\nrename from reftable/reftable-constants.h\nrename to lib/reftable/reftable-constants.h\ndiff --git a/reftable/reftable-error.h b/lib/reftable/reftable-error.h\nsimilarity index 100%\nrename from reftable/reftable-error.h\nrename to lib/reftable/reftable-error.h\ndiff --git a/reftable/reftable-fsck.h b/lib/reftable/reftable-fsck.h\nsimilarity index 100%\nrename from reftable/reftable-fsck.h\nrename to lib/reftable/reftable-fsck.h\ndiff --git a/reftable/reftable-iterator.h b/lib/reftable/reftable-iterator.h\nsimilarity index 100%\nrename from reftable/reftable-iterator.h\nrename to lib/reftable/reftable-iterator.h\ndiff --git a/reftable/reftable-merged.h b/lib/reftable/reftable-merged.h\nsimilarity index 100%\nrename from reftable/reftable-merged.h\nrename to lib/reftable/reftable-merged.h\ndiff --git a/reftable/reftable-record.h b/lib/reftable/reftable-record.h\nsimilarity index 100%\nrename from reftable/reftable-record.h\nrename to lib/reftable/reftable-record.h\ndiff --git a/reftable/reftable-stack.h b/lib/reftable/reftable-stack.h\nsimilarity index 100%\nrename from reftable/reftable-stack.h\nrename to lib/reftable/reftable-stack.h\ndiff --git a/reftable/reftable-system.h b/lib/reftable/reftable-system.h\nsimilarity index 100%\nrename from reftable/reftable-system.h\nrename to lib/reftable/reftable-system.h\ndiff --git a/reftable/reftable-table.h b/lib/reftable/reftable-table.h\nsimilarity index 100%\nrename from reftable/reftable-table.h\nrename to lib/reftable/reftable-table.h\ndiff --git a/reftable/reftable-writer.h b/lib/reftable/reftable-writer.h\nsimilarity index 100%\nrename from reftable/reftable-writer.h\nrename to lib/reftable/reftable-writer.h\ndiff --git a/reftable/stack.c b/lib/reftable/stack.c\nsimilarity index 100%\nrename from reftable/stack.c\nrename to lib/reftable/stack.c\ndiff --git a/reftable/stack.h b/lib/reftable/stack.h\nsimilarity index 100%\nrename from reftable/stack.h\nrename to lib/reftable/stack.h\ndiff --git a/reftable/system.c b/lib/reftable/system.c\nsimilarity index 100%\nrename from reftable/system.c\nrename to lib/reftable/system.c\ndiff --git a/reftable/system.h b/lib/reftable/system.h\nsimilarity index 100%\nrename from reftable/system.h\nrename to lib/reftable/system.h\ndiff --git a/reftable/table.c b/lib/reftable/table.c\nsimilarity index 100%\nrename from reftable/table.c\nrename to lib/reftable/table.c\ndiff --git a/reftable/table.h b/lib/reftable/table.h\nsimilarity index 100%\nrename from reftable/table.h\nrename to lib/reftable/table.h\ndiff --git a/reftable/tree.c b/lib/reftable/tree.c\nsimilarity index 100%\nrename from reftable/tree.c\nrename to lib/reftable/tree.c\ndiff --git a/reftable/tree.h b/lib/reftable/tree.h\nsimilarity index 100%\nrename from reftable/tree.h\nrename to lib/reftable/tree.h\ndiff --git a/reftable/writer.c b/lib/reftable/writer.c\nsimilarity index 100%\nrename from reftable/writer.c\nrename to lib/reftable/writer.c\ndiff --git a/reftable/writer.h b/lib/reftable/writer.h\nsimilarity index 100%\nrename from reftable/writer.h\nrename to lib/reftable/writer.h\ndiff --git a/remote.c b/lib/remote.c\nsimilarity index 100%\nrename from remote.c\nrename to lib/remote.c\ndiff --git a/remote.h b/lib/remote.h\nsimilarity index 100%\nrename from remote.h\nrename to lib/remote.h\ndiff --git a/repack-cruft.c b/lib/repack-cruft.c\nsimilarity index 100%\nrename from repack-cruft.c\nrename to lib/repack-cruft.c\ndiff --git a/repack-filtered.c b/lib/repack-filtered.c\nsimilarity index 100%\nrename from repack-filtered.c\nrename to lib/repack-filtered.c\ndiff --git a/repack-geometry.c b/lib/repack-geometry.c\nsimilarity index 100%\nrename from repack-geometry.c\nrename to lib/repack-geometry.c\ndiff --git a/repack-midx.c b/lib/repack-midx.c\nsimilarity index 100%\nrename from repack-midx.c\nrename to lib/repack-midx.c\ndiff --git a/repack-promisor.c b/lib/repack-promisor.c\nsimilarity index 100%\nrename from repack-promisor.c\nrename to lib/repack-promisor.c\ndiff --git a/repack.c b/lib/repack.c\nsimilarity index 100%\nrename from repack.c\nrename to lib/repack.c\ndiff --git a/repack.h b/lib/repack.h\nsimilarity index 100%\nrename from repack.h\nrename to lib/repack.h\ndiff --git a/replace-object.c b/lib/replace-object.c\nsimilarity index 100%\nrename from replace-object.c\nrename to lib/replace-object.c\ndiff --git a/replace-object.h b/lib/replace-object.h\nsimilarity index 100%\nrename from replace-object.h\nrename to lib/replace-object.h\ndiff --git a/replay.c b/lib/replay.c\nsimilarity index 100%\nrename from replay.c\nrename to lib/replay.c\ndiff --git a/replay.h b/lib/replay.h\nsimilarity index 100%\nrename from replay.h\nrename to lib/replay.h\ndiff --git a/repo-settings.c b/lib/repo-settings.c\nsimilarity index 100%\nrename from repo-settings.c\nrename to lib/repo-settings.c\ndiff --git a/repo-settings.h b/lib/repo-settings.h\nsimilarity index 100%\nrename from repo-settings.h\nrename to lib/repo-settings.h\ndiff --git a/repository.c b/lib/repository.c\nsimilarity index 100%\nrename from repository.c\nrename to lib/repository.c\ndiff --git a/repository.h b/lib/repository.h\nsimilarity index 100%\nrename from repository.h\nrename to lib/repository.h\ndiff --git a/rerere.c b/lib/rerere.c\nsimilarity index 100%\nrename from rerere.c\nrename to lib/rerere.c\ndiff --git a/rerere.h b/lib/rerere.h\nsimilarity index 100%\nrename from rerere.h\nrename to lib/rerere.h\ndiff --git a/reset.c b/lib/reset.c\nsimilarity index 100%\nrename from reset.c\nrename to lib/reset.c\ndiff --git a/reset.h b/lib/reset.h\nsimilarity index 100%\nrename from reset.h\nrename to lib/reset.h\ndiff --git a/resolve-undo.c b/lib/resolve-undo.c\nsimilarity index 100%\nrename from resolve-undo.c\nrename to lib/resolve-undo.c\ndiff --git a/resolve-undo.h b/lib/resolve-undo.h\nsimilarity index 100%\nrename from resolve-undo.h\nrename to lib/resolve-undo.h\ndiff --git a/revision.c b/lib/revision.c\nsimilarity index 100%\nrename from revision.c\nrename to lib/revision.c\ndiff --git a/revision.h b/lib/revision.h\nsimilarity index 100%\nrename from revision.h\nrename to lib/revision.h\ndiff --git a/run-command.c b/lib/run-command.c\nsimilarity index 100%\nrename from run-command.c\nrename to lib/run-command.c\ndiff --git a/run-command.h b/lib/run-command.h\nsimilarity index 100%\nrename from run-command.h\nrename to lib/run-command.h\ndiff --git a/sane-ctype.h b/lib/sane-ctype.h\nsimilarity index 100%\nrename from sane-ctype.h\nrename to lib/sane-ctype.h\ndiff --git a/send-pack.c b/lib/send-pack.c\nsimilarity index 100%\nrename from send-pack.c\nrename to lib/send-pack.c\ndiff --git a/send-pack.h b/lib/send-pack.h\nsimilarity index 100%\nrename from send-pack.h\nrename to lib/send-pack.h\ndiff --git a/sequencer.c b/lib/sequencer.c\nsimilarity index 100%\nrename from sequencer.c\nrename to lib/sequencer.c\ndiff --git a/sequencer.h b/lib/sequencer.h\nsimilarity index 100%\nrename from sequencer.h\nrename to lib/sequencer.h\ndiff --git a/serve.c b/lib/serve.c\nsimilarity index 100%\nrename from serve.c\nrename to lib/serve.c\ndiff --git a/serve.h b/lib/serve.h\nsimilarity index 100%\nrename from serve.h\nrename to lib/serve.h\ndiff --git a/server-info.c b/lib/server-info.c\nsimilarity index 100%\nrename from server-info.c\nrename to lib/server-info.c\ndiff --git a/server-info.h b/lib/server-info.h\nsimilarity index 100%\nrename from server-info.h\nrename to lib/server-info.h\ndiff --git a/setup.c b/lib/setup.c\nsimilarity index 100%\nrename from setup.c\nrename to lib/setup.c\ndiff --git a/setup.h b/lib/setup.h\nsimilarity index 100%\nrename from setup.h\nrename to lib/setup.h\ndiff --git a/sha1/openssl.h b/lib/sha1/openssl.h\nsimilarity index 100%\nrename from sha1/openssl.h\nrename to lib/sha1/openssl.h\ndiff --git a/sha1collisiondetection b/lib/sha1collisiondetection\nsimilarity index 100%\nrename from sha1collisiondetection\nrename to lib/sha1collisiondetection\ndiff --git a/sha1dc/.gitattributes b/lib/sha1dc/.gitattributes\nsimilarity index 100%\nrename from sha1dc/.gitattributes\nrename to lib/sha1dc/.gitattributes\ndiff --git a/sha1dc/LICENSE.txt b/lib/sha1dc/LICENSE.txt\nsimilarity index 100%\nrename from sha1dc/LICENSE.txt\nrename to lib/sha1dc/LICENSE.txt\ndiff --git a/sha1dc/sha1.c b/lib/sha1dc/sha1.c\nsimilarity index 100%\nrename from sha1dc/sha1.c\nrename to lib/sha1dc/sha1.c\ndiff --git a/sha1dc/sha1.h b/lib/sha1dc/sha1.h\nsimilarity index 100%\nrename from sha1dc/sha1.h\nrename to lib/sha1dc/sha1.h\ndiff --git a/sha1dc/ubc_check.c b/lib/sha1dc/ubc_check.c\nsimilarity index 100%\nrename from sha1dc/ubc_check.c\nrename to lib/sha1dc/ubc_check.c\ndiff --git a/sha1dc/ubc_check.h b/lib/sha1dc/ubc_check.h\nsimilarity index 100%\nrename from sha1dc/ubc_check.h\nrename to lib/sha1dc/ubc_check.h\ndiff --git a/sha1dc_git.c b/lib/sha1dc_git.c\nsimilarity index 100%\nrename from sha1dc_git.c\nrename to lib/sha1dc_git.c\ndiff --git a/sha1dc_git.h b/lib/sha1dc_git.h\nsimilarity index 100%\nrename from sha1dc_git.h\nrename to lib/sha1dc_git.h\ndiff --git a/sha256/block/sha256.c b/lib/sha256/block/sha256.c\nsimilarity index 100%\nrename from sha256/block/sha256.c\nrename to lib/sha256/block/sha256.c\ndiff --git a/sha256/block/sha256.h b/lib/sha256/block/sha256.h\nsimilarity index 100%\nrename from sha256/block/sha256.h\nrename to lib/sha256/block/sha256.h\ndiff --git a/sha256/gcrypt.h b/lib/sha256/gcrypt.h\nsimilarity index 100%\nrename from sha256/gcrypt.h\nrename to lib/sha256/gcrypt.h\ndiff --git a/sha256/nettle.h b/lib/sha256/nettle.h\nsimilarity index 100%\nrename from sha256/nettle.h\nrename to lib/sha256/nettle.h\ndiff --git a/sha256/openssl.h b/lib/sha256/openssl.h\nsimilarity index 100%\nrename from sha256/openssl.h\nrename to lib/sha256/openssl.h\ndiff --git a/shallow.c b/lib/shallow.c\nsimilarity index 100%\nrename from shallow.c\nrename to lib/shallow.c\ndiff --git a/shallow.h b/lib/shallow.h\nsimilarity index 100%\nrename from shallow.h\nrename to lib/shallow.h\ndiff --git a/shortlog.h b/lib/shortlog.h\nsimilarity index 100%\nrename from shortlog.h\nrename to lib/shortlog.h\ndiff --git a/sideband.c b/lib/sideband.c\nsimilarity index 100%\nrename from sideband.c\nrename to lib/sideband.c\ndiff --git a/sideband.h b/lib/sideband.h\nsimilarity index 100%\nrename from sideband.h\nrename to lib/sideband.h\ndiff --git a/sigchain.c b/lib/sigchain.c\nsimilarity index 100%\nrename from sigchain.c\nrename to lib/sigchain.c\ndiff --git a/sigchain.h b/lib/sigchain.h\nsimilarity index 100%\nrename from sigchain.h\nrename to lib/sigchain.h\ndiff --git a/simple-ipc.h b/lib/simple-ipc.h\nsimilarity index 100%\nrename from simple-ipc.h\nrename to lib/simple-ipc.h\ndiff --git a/sparse-index.c b/lib/sparse-index.c\nsimilarity index 100%\nrename from sparse-index.c\nrename to lib/sparse-index.c\ndiff --git a/sparse-index.h b/lib/sparse-index.h\nsimilarity index 100%\nrename from sparse-index.h\nrename to lib/sparse-index.h\ndiff --git a/split-index.c b/lib/split-index.c\nsimilarity index 100%\nrename from split-index.c\nrename to lib/split-index.c\ndiff --git a/split-index.h b/lib/split-index.h\nsimilarity index 100%\nrename from split-index.h\nrename to lib/split-index.h\ndiff --git a/stable-qsort.c b/lib/stable-qsort.c\nsimilarity index 100%\nrename from stable-qsort.c\nrename to lib/stable-qsort.c\ndiff --git a/statinfo.c b/lib/statinfo.c\nsimilarity index 100%\nrename from statinfo.c\nrename to lib/statinfo.c\ndiff --git a/statinfo.h b/lib/statinfo.h\nsimilarity index 100%\nrename from statinfo.h\nrename to lib/statinfo.h\ndiff --git a/strbuf.c b/lib/strbuf.c\nsimilarity index 100%\nrename from strbuf.c\nrename to lib/strbuf.c\ndiff --git a/strbuf.h b/lib/strbuf.h\nsimilarity index 100%\nrename from strbuf.h\nrename to lib/strbuf.h\ndiff --git a/string-list.c b/lib/string-list.c\nsimilarity index 100%\nrename from string-list.c\nrename to lib/string-list.c\ndiff --git a/string-list.h b/lib/string-list.h\nsimilarity index 100%\nrename from string-list.h\nrename to lib/string-list.h\ndiff --git a/strmap.c b/lib/strmap.c\nsimilarity index 100%\nrename from strmap.c\nrename to lib/strmap.c\ndiff --git a/strmap.h b/lib/strmap.h\nsimilarity index 100%\nrename from strmap.h\nrename to lib/strmap.h\ndiff --git a/strvec.c b/lib/strvec.c\nsimilarity index 100%\nrename from strvec.c\nrename to lib/strvec.c\ndiff --git a/strvec.h b/lib/strvec.h\nsimilarity index 100%\nrename from strvec.h\nrename to lib/strvec.h\ndiff --git a/sub-process.c b/lib/sub-process.c\nsimilarity index 100%\nrename from sub-process.c\nrename to lib/sub-process.c\ndiff --git a/sub-process.h b/lib/sub-process.h\nsimilarity index 100%\nrename from sub-process.h\nrename to lib/sub-process.h\ndiff --git a/submodule-config.c b/lib/submodule-config.c\nsimilarity index 100%\nrename from submodule-config.c\nrename to lib/submodule-config.c\ndiff --git a/submodule-config.h b/lib/submodule-config.h\nsimilarity index 100%\nrename from submodule-config.h\nrename to lib/submodule-config.h\ndiff --git a/submodule.c b/lib/submodule.c\nsimilarity index 100%\nrename from submodule.c\nrename to lib/submodule.c\ndiff --git a/submodule.h b/lib/submodule.h\nsimilarity index 100%\nrename from submodule.h\nrename to lib/submodule.h\ndiff --git a/symlinks.c b/lib/symlinks.c\nsimilarity index 100%\nrename from symlinks.c\nrename to lib/symlinks.c\ndiff --git a/symlinks.h b/lib/symlinks.h\nsimilarity index 100%\nrename from symlinks.h\nrename to lib/symlinks.h\ndiff --git a/tag.c b/lib/tag.c\nsimilarity index 100%\nrename from tag.c\nrename to lib/tag.c\ndiff --git a/tag.h b/lib/tag.h\nsimilarity index 100%\nrename from tag.h\nrename to lib/tag.h\ndiff --git a/tar.h b/lib/tar.h\nsimilarity index 100%\nrename from tar.h\nrename to lib/tar.h\ndiff --git a/tempfile.c b/lib/tempfile.c\nsimilarity index 100%\nrename from tempfile.c\nrename to lib/tempfile.c\ndiff --git a/tempfile.h b/lib/tempfile.h\nsimilarity index 100%\nrename from tempfile.h\nrename to lib/tempfile.h\ndiff --git a/thread-utils.c b/lib/thread-utils.c\nsimilarity index 100%\nrename from thread-utils.c\nrename to lib/thread-utils.c\ndiff --git a/thread-utils.h b/lib/thread-utils.h\nsimilarity index 100%\nrename from thread-utils.h\nrename to lib/thread-utils.h\ndiff --git a/tmp-objdir.c b/lib/tmp-objdir.c\nsimilarity index 100%\nrename from tmp-objdir.c\nrename to lib/tmp-objdir.c\ndiff --git a/tmp-objdir.h b/lib/tmp-objdir.h\nsimilarity index 100%\nrename from tmp-objdir.h\nrename to lib/tmp-objdir.h\ndiff --git a/trace.c b/lib/trace.c\nsimilarity index 100%\nrename from trace.c\nrename to lib/trace.c\ndiff --git a/trace.h b/lib/trace.h\nsimilarity index 100%\nrename from trace.h\nrename to lib/trace.h\ndiff --git a/trace2.c b/lib/trace2.c\nsimilarity index 100%\nrename from trace2.c\nrename to lib/trace2.c\ndiff --git a/trace2.h b/lib/trace2.h\nsimilarity index 100%\nrename from trace2.h\nrename to lib/trace2.h\ndiff --git a/trace2/tr2_cfg.c b/lib/trace2/tr2_cfg.c\nsimilarity index 100%\nrename from trace2/tr2_cfg.c\nrename to lib/trace2/tr2_cfg.c\ndiff --git a/trace2/tr2_cfg.h b/lib/trace2/tr2_cfg.h\nsimilarity index 100%\nrename from trace2/tr2_cfg.h\nrename to lib/trace2/tr2_cfg.h\ndiff --git a/trace2/tr2_cmd_name.c b/lib/trace2/tr2_cmd_name.c\nsimilarity index 100%\nrename from trace2/tr2_cmd_name.c\nrename to lib/trace2/tr2_cmd_name.c\ndiff --git a/trace2/tr2_cmd_name.h b/lib/trace2/tr2_cmd_name.h\nsimilarity index 100%\nrename from trace2/tr2_cmd_name.h\nrename to lib/trace2/tr2_cmd_name.h\ndiff --git a/trace2/tr2_ctr.c b/lib/trace2/tr2_ctr.c\nsimilarity index 100%\nrename from trace2/tr2_ctr.c\nrename to lib/trace2/tr2_ctr.c\ndiff --git a/trace2/tr2_ctr.h b/lib/trace2/tr2_ctr.h\nsimilarity index 100%\nrename from trace2/tr2_ctr.h\nrename to lib/trace2/tr2_ctr.h\ndiff --git a/trace2/tr2_dst.c b/lib/trace2/tr2_dst.c\nsimilarity index 100%\nrename from trace2/tr2_dst.c\nrename to lib/trace2/tr2_dst.c\ndiff --git a/trace2/tr2_dst.h b/lib/trace2/tr2_dst.h\nsimilarity index 100%\nrename from trace2/tr2_dst.h\nrename to lib/trace2/tr2_dst.h\ndiff --git a/trace2/tr2_sid.c b/lib/trace2/tr2_sid.c\nsimilarity index 100%\nrename from trace2/tr2_sid.c\nrename to lib/trace2/tr2_sid.c\ndiff --git a/trace2/tr2_sid.h b/lib/trace2/tr2_sid.h\nsimilarity index 100%\nrename from trace2/tr2_sid.h\nrename to lib/trace2/tr2_sid.h\ndiff --git a/trace2/tr2_sysenv.c b/lib/trace2/tr2_sysenv.c\nsimilarity index 100%\nrename from trace2/tr2_sysenv.c\nrename to lib/trace2/tr2_sysenv.c\ndiff --git a/trace2/tr2_sysenv.h b/lib/trace2/tr2_sysenv.h\nsimilarity index 100%\nrename from trace2/tr2_sysenv.h\nrename to lib/trace2/tr2_sysenv.h\ndiff --git a/trace2/tr2_tbuf.c b/lib/trace2/tr2_tbuf.c\nsimilarity index 100%\nrename from trace2/tr2_tbuf.c\nrename to lib/trace2/tr2_tbuf.c\ndiff --git a/trace2/tr2_tbuf.h b/lib/trace2/tr2_tbuf.h\nsimilarity index 100%\nrename from trace2/tr2_tbuf.h\nrename to lib/trace2/tr2_tbuf.h\ndiff --git a/trace2/tr2_tgt.h b/lib/trace2/tr2_tgt.h\nsimilarity index 100%\nrename from trace2/tr2_tgt.h\nrename to lib/trace2/tr2_tgt.h\ndiff --git a/trace2/tr2_tgt_event.c b/lib/trace2/tr2_tgt_event.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_event.c\nrename to lib/trace2/tr2_tgt_event.c\ndiff --git a/trace2/tr2_tgt_normal.c b/lib/trace2/tr2_tgt_normal.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_normal.c\nrename to lib/trace2/tr2_tgt_normal.c\ndiff --git a/trace2/tr2_tgt_perf.c b/lib/trace2/tr2_tgt_perf.c\nsimilarity index 100%\nrename from trace2/tr2_tgt_perf.c\nrename to lib/trace2/tr2_tgt_perf.c\ndiff --git a/trace2/tr2_tls.c b/lib/trace2/tr2_tls.c\nsimilarity index 100%\nrename from trace2/tr2_tls.c\nrename to lib/trace2/tr2_tls.c\ndiff --git a/trace2/tr2_tls.h b/lib/trace2/tr2_tls.h\nsimilarity index 100%\nrename from trace2/tr2_tls.h\nrename to lib/trace2/tr2_tls.h\ndiff --git a/trace2/tr2_tmr.c b/lib/trace2/tr2_tmr.c\nsimilarity index 100%\nrename from trace2/tr2_tmr.c\nrename to lib/trace2/tr2_tmr.c\ndiff --git a/trace2/tr2_tmr.h b/lib/trace2/tr2_tmr.h\nsimilarity index 100%\nrename from trace2/tr2_tmr.h\nrename to lib/trace2/tr2_tmr.h\ndiff --git a/trailer.c b/lib/trailer.c\nsimilarity index 100%\nrename from trailer.c\nrename to lib/trailer.c\ndiff --git a/trailer.h b/lib/trailer.h\nsimilarity index 100%\nrename from trailer.h\nrename to lib/trailer.h\ndiff --git a/transport-helper.c b/lib/transport-helper.c\nsimilarity index 100%\nrename from transport-helper.c\nrename to lib/transport-helper.c\ndiff --git a/transport-internal.h b/lib/transport-internal.h\nsimilarity index 100%\nrename from transport-internal.h\nrename to lib/transport-internal.h\ndiff --git a/transport.c b/lib/transport.c\nsimilarity index 100%\nrename from transport.c\nrename to lib/transport.c\ndiff --git a/transport.h b/lib/transport.h\nsimilarity index 100%\nrename from transport.h\nrename to lib/transport.h\ndiff --git a/tree-diff.c b/lib/tree-diff.c\nsimilarity index 100%\nrename from tree-diff.c\nrename to lib/tree-diff.c\ndiff --git a/tree-walk.c b/lib/tree-walk.c\nsimilarity index 100%\nrename from tree-walk.c\nrename to lib/tree-walk.c\ndiff --git a/tree-walk.h b/lib/tree-walk.h\nsimilarity index 100%\nrename from tree-walk.h\nrename to lib/tree-walk.h\ndiff --git a/tree.c b/lib/tree.c\nsimilarity index 100%\nrename from tree.c\nrename to lib/tree.c\ndiff --git a/tree.h b/lib/tree.h\nsimilarity index 100%\nrename from tree.h\nrename to lib/tree.h\ndiff --git a/unicode-width.h b/lib/unicode-width.h\nsimilarity index 100%\nrename from unicode-width.h\nrename to lib/unicode-width.h\ndiff --git a/unix-socket.c b/lib/unix-socket.c\nsimilarity index 100%\nrename from unix-socket.c\nrename to lib/unix-socket.c\ndiff --git a/unix-socket.h b/lib/unix-socket.h\nsimilarity index 100%\nrename from unix-socket.h\nrename to lib/unix-socket.h\ndiff --git a/unix-stream-server.c b/lib/unix-stream-server.c\nsimilarity index 100%\nrename from unix-stream-server.c\nrename to lib/unix-stream-server.c\ndiff --git a/unix-stream-server.h b/lib/unix-stream-server.h\nsimilarity index 100%\nrename from unix-stream-server.h\nrename to lib/unix-stream-server.h\ndiff --git a/unpack-trees.c b/lib/unpack-trees.c\nsimilarity index 100%\nrename from unpack-trees.c\nrename to lib/unpack-trees.c\ndiff --git a/unpack-trees.h b/lib/unpack-trees.h\nsimilarity index 100%\nrename from unpack-trees.h\nrename to lib/unpack-trees.h\ndiff --git a/upload-pack.c b/lib/upload-pack.c\nsimilarity index 100%\nrename from upload-pack.c\nrename to lib/upload-pack.c\ndiff --git a/upload-pack.h b/lib/upload-pack.h\nsimilarity index 100%\nrename from upload-pack.h\nrename to lib/upload-pack.h\ndiff --git a/url.c b/lib/url.c\nsimilarity index 100%\nrename from url.c\nrename to lib/url.c\ndiff --git a/url.h b/lib/url.h\nsimilarity index 100%\nrename from url.h\nrename to lib/url.h\ndiff --git a/urlmatch.c b/lib/urlmatch.c\nsimilarity index 100%\nrename from urlmatch.c\nrename to lib/urlmatch.c\ndiff --git a/urlmatch.h b/lib/urlmatch.h\nsimilarity index 100%\nrename from urlmatch.h\nrename to lib/urlmatch.h\ndiff --git a/usage.c b/lib/usage.c\nsimilarity index 100%\nrename from usage.c\nrename to lib/usage.c\ndiff --git a/userdiff.c b/lib/userdiff.c\nsimilarity index 100%\nrename from userdiff.c\nrename to lib/userdiff.c\ndiff --git a/userdiff.h b/lib/userdiff.h\nsimilarity index 100%\nrename from userdiff.h\nrename to lib/userdiff.h\ndiff --git a/utf8.c b/lib/utf8.c\nsimilarity index 100%\nrename from utf8.c\nrename to lib/utf8.c\ndiff --git a/utf8.h b/lib/utf8.h\nsimilarity index 100%\nrename from utf8.h\nrename to lib/utf8.h\ndiff --git a/varint.c b/lib/varint.c\nsimilarity index 100%\nrename from varint.c\nrename to lib/varint.c\ndiff --git a/varint.h b/lib/varint.h\nsimilarity index 100%\nrename from varint.h\nrename to lib/varint.h\ndiff --git a/version-def.h.in b/lib/version-def.h.in\nsimilarity index 100%\nrename from version-def.h.in\nrename to lib/version-def.h.in\ndiff --git a/version.c b/lib/version.c\nsimilarity index 100%\nrename from version.c\nrename to lib/version.c\ndiff --git a/version.h b/lib/version.h\nsimilarity index 100%\nrename from version.h\nrename to lib/version.h\ndiff --git a/versioncmp.c b/lib/versioncmp.c\nsimilarity index 100%\nrename from versioncmp.c\nrename to lib/versioncmp.c\ndiff --git a/versioncmp.h b/lib/versioncmp.h\nsimilarity index 100%\nrename from versioncmp.h\nrename to lib/versioncmp.h\ndiff --git a/walker.c b/lib/walker.c\nsimilarity index 100%\nrename from walker.c\nrename to lib/walker.c\ndiff --git a/walker.h b/lib/walker.h\nsimilarity index 100%\nrename from walker.h\nrename to lib/walker.h\ndiff --git a/wildmatch.c b/lib/wildmatch.c\nsimilarity index 100%\nrename from wildmatch.c\nrename to lib/wildmatch.c\ndiff --git a/wildmatch.h b/lib/wildmatch.h\nsimilarity index 100%\nrename from wildmatch.h\nrename to lib/wildmatch.h\ndiff --git a/worktree.c b/lib/worktree.c\nsimilarity index 100%\nrename from worktree.c\nrename to lib/worktree.c\ndiff --git a/worktree.h b/lib/worktree.h\nsimilarity index 100%\nrename from worktree.h\nrename to lib/worktree.h\ndiff --git a/wrapper.c b/lib/wrapper.c\nsimilarity index 100%\nrename from wrapper.c\nrename to lib/wrapper.c\ndiff --git a/wrapper.h b/lib/wrapper.h\nsimilarity index 100%\nrename from wrapper.h\nrename to lib/wrapper.h\ndiff --git a/write-or-die.c b/lib/write-or-die.c\nsimilarity index 100%\nrename from write-or-die.c\nrename to lib/write-or-die.c\ndiff --git a/write-or-die.h b/lib/write-or-die.h\nsimilarity index 100%\nrename from write-or-die.h\nrename to lib/write-or-die.h\ndiff --git a/ws.c b/lib/ws.c\nsimilarity index 100%\nrename from ws.c\nrename to lib/ws.c\ndiff --git a/ws.h b/lib/ws.h\nsimilarity index 100%\nrename from ws.h\nrename to lib/ws.h\ndiff --git a/wt-status.c b/lib/wt-status.c\nsimilarity index 100%\nrename from wt-status.c\nrename to lib/wt-status.c\ndiff --git a/wt-status.h b/lib/wt-status.h\nsimilarity index 100%\nrename from wt-status.h\nrename to lib/wt-status.h\ndiff --git a/xdiff-interface.c b/lib/xdiff-interface.c\nsimilarity index 100%\nrename from xdiff-interface.c\nrename to lib/xdiff-interface.c\ndiff --git a/xdiff-interface.h b/lib/xdiff-interface.h\nsimilarity index 100%\nrename from xdiff-interface.h\nrename to lib/xdiff-interface.h\ndiff --git a/xdiff/xdiff.h b/lib/xdiff/xdiff.h\nsimilarity index 100%\nrename from xdiff/xdiff.h\nrename to lib/xdiff/xdiff.h\ndiff --git a/xdiff/xdiffi.c b/lib/xdiff/xdiffi.c\nsimilarity index 100%\nrename from xdiff/xdiffi.c\nrename to lib/xdiff/xdiffi.c\ndiff --git a/xdiff/xdiffi.h b/lib/xdiff/xdiffi.h\nsimilarity index 100%\nrename from xdiff/xdiffi.h\nrename to lib/xdiff/xdiffi.h\ndiff --git a/xdiff/xemit.c b/lib/xdiff/xemit.c\nsimilarity index 100%\nrename from xdiff/xemit.c\nrename to lib/xdiff/xemit.c\ndiff --git a/xdiff/xemit.h b/lib/xdiff/xemit.h\nsimilarity index 100%\nrename from xdiff/xemit.h\nrename to lib/xdiff/xemit.h\ndiff --git a/xdiff/xhistogram.c b/lib/xdiff/xhistogram.c\nsimilarity index 100%\nrename from xdiff/xhistogram.c\nrename to lib/xdiff/xhistogram.c\ndiff --git a/xdiff/xinclude.h b/lib/xdiff/xinclude.h\nsimilarity index 100%\nrename from xdiff/xinclude.h\nrename to lib/xdiff/xinclude.h\ndiff --git a/xdiff/xmacros.h b/lib/xdiff/xmacros.h\nsimilarity index 100%\nrename from xdiff/xmacros.h\nrename to lib/xdiff/xmacros.h\ndiff --git a/xdiff/xmerge.c b/lib/xdiff/xmerge.c\nsimilarity index 100%\nrename from xdiff/xmerge.c\nrename to lib/xdiff/xmerge.c\ndiff --git a/xdiff/xpatience.c b/lib/xdiff/xpatience.c\nsimilarity index 100%\nrename from xdiff/xpatience.c\nrename to lib/xdiff/xpatience.c\ndiff --git a/xdiff/xprepare.c b/lib/xdiff/xprepare.c\nsimilarity index 100%\nrename from xdiff/xprepare.c\nrename to lib/xdiff/xprepare.c\ndiff --git a/xdiff/xprepare.h b/lib/xdiff/xprepare.h\nsimilarity index 100%\nrename from xdiff/xprepare.h\nrename to lib/xdiff/xprepare.h\ndiff --git a/xdiff/xtypes.h b/lib/xdiff/xtypes.h\nsimilarity index 100%\nrename from xdiff/xtypes.h\nrename to lib/xdiff/xtypes.h\ndiff --git a/xdiff/xutils.c b/lib/xdiff/xutils.c\nsimilarity index 100%\nrename from xdiff/xutils.c\nrename to lib/xdiff/xutils.c\ndiff --git a/xdiff/xutils.h b/lib/xdiff/xutils.h\nsimilarity index 100%\nrename from xdiff/xutils.h\nrename to lib/xdiff/xutils.h\ndiff --git a/meson.build b/meson.build\nindex ca235801cf..2f90bed441 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -272,293 +272,293 @@ version_gen_environment.set('GIT_VERSION', get_option('version'))\n compiler = meson.get_compiler('c')\n \n compat_sources = [\n-  'compat/nonblock.c',\n-  'compat/obstack.c',\n-  'compat/open.c',\n-  'compat/terminal.c',\n+  'lib/compat/nonblock.c',\n+  'lib/compat/obstack.c',\n+  'lib/compat/open.c',\n+  'lib/compat/terminal.c',\n ]\n \n libgit_sources = [\n-  'abspath.c',\n-  'add-interactive.c',\n-  'add-patch.c',\n-  'advice.c',\n-  'alias.c',\n-  'alloc.c',\n-  'apply.c',\n-  'archive-tar.c',\n-  'archive-zip.c',\n-  'archive.c',\n-  'attr.c',\n-  'base85.c',\n-  'bisect.c',\n-  'blame.c',\n-  'blob.c',\n-  'bloom.c',\n-  'branch.c',\n-  'bundle-uri.c',\n-  'bundle.c',\n-  'cache-tree.c',\n-  'cbtree.c',\n-  'chdir-notify.c',\n-  'checkout.c',\n-  'chunk-format.c',\n-  'color.c',\n-  'column.c',\n-  'combine-diff.c',\n-  'commit-graph.c',\n-  'commit-reach.c',\n-  'commit.c',\n-  'common-exit.c',\n-  'common-init.c',\n-  'compiler-tricks/not-constant.c',\n-  'config.c',\n-  'connect.c',\n-  'connected.c',\n-  'convert.c',\n-  'copy.c',\n-  'credential.c',\n-  'csum-file.c',\n-  'ctype.c',\n-  'date.c',\n-  'decorate.c',\n-  'delta-islands.c',\n-  'diagnose.c',\n-  'diff-delta.c',\n-  'diff-merges.c',\n-  'diff-lib.c',\n-  'diff-no-index.c',\n-  'diff.c',\n-  'diffcore-break.c',\n-  'diffcore-delta.c',\n-  'diffcore-order.c',\n-  'diffcore-pickaxe.c',\n-  'diffcore-rename.c',\n-  'diffcore-rotate.c',\n-  'dir-iterator.c',\n-  'dir.c',\n-  'editor.c',\n-  'entry.c',\n-  'environment.c',\n-  'ewah/bitmap.c',\n-  'ewah/ewah_bitmap.c',\n-  'ewah/ewah_io.c',\n-  'ewah/ewah_rlw.c',\n-  'exec-cmd.c',\n-  'fetch-negotiator.c',\n-  'fetch-pack.c',\n-  'fmt-merge-msg.c',\n-  'fsck.c',\n-  'fsmonitor.c',\n-  'fsmonitor-ipc.c',\n-  'fsmonitor-settings.c',\n-  'gettext.c',\n-  'git-zlib.c',\n-  'gpg-interface.c',\n-  'graph.c',\n-  'grep.c',\n-  'hash-lookup.c',\n-  'hash.c',\n-  'hashmap.c',\n-  'help.c',\n-  'hex.c',\n-  'hex-ll.c',\n-  'hook.c',\n-  'ident.c',\n-  'json-writer.c',\n-  'kwset.c',\n-  'levenshtein.c',\n-  'line-log.c',\n-  'line-range.c',\n-  'linear-assignment.c',\n-  'list-objects-filter-options.c',\n-  'list-objects-filter.c',\n-  'list-objects.c',\n-  'lockfile.c',\n-  'log-tree.c',\n-  'loose.c',\n-  'ls-refs.c',\n-  'mailinfo.c',\n-  'mailmap.c',\n-  'match-trees.c',\n-  'mem-pool.c',\n-  'merge-blobs.c',\n-  'merge-ll.c',\n-  'merge-ort.c',\n-  'merge-ort-wrappers.c',\n-  'merge.c',\n-  'midx.c',\n-  'midx-write.c',\n-  'name-hash.c',\n-  'negotiator/default.c',\n-  'negotiator/noop.c',\n-  'negotiator/skipping.c',\n-  'notes-cache.c',\n-  'notes-merge.c',\n-  'notes-utils.c',\n-  'notes.c',\n-  'object-file-convert.c',\n-  'object-file.c',\n-  'object-name.c',\n-  'object.c',\n-  'odb.c',\n-  'odb/source.c',\n-  'odb/source-files.c',\n-  'odb/source-inmemory.c',\n-  'odb/source-loose.c',\n-  'odb/source-packed.c',\n-  'odb/streaming.c',\n-  'odb/transaction.c',\n-  'oid-array.c',\n-  'oidmap.c',\n-  'oidset.c',\n-  'oidtree.c',\n-  'pack-bitmap-write.c',\n-  'pack-bitmap.c',\n-  'pack-check.c',\n-  'pack-mtimes.c',\n-  'pack-objects.c',\n-  'pack-refs.c',\n-  'pack-revindex.c',\n-  'pack-write.c',\n-  'packfile.c',\n-  'packfile-list.c',\n-  'pager.c',\n-  'parallel-checkout.c',\n-  'parse.c',\n-  'parse-options-cb.c',\n-  'parse-options.c',\n-  'patch-delta.c',\n-  'patch-ids.c',\n-  'path.c',\n-  'path-walk.c',\n-  'pathspec.c',\n-  'pkt-line.c',\n-  'preload-index.c',\n-  'pretty.c',\n-  'prio-queue.c',\n-  'progress.c',\n-  'promisor-remote.c',\n-  'prompt.c',\n-  'protocol.c',\n-  'protocol-caps.c',\n-  'prune-packed.c',\n-  'pseudo-merge.c',\n-  'quote.c',\n-  'range-diff.c',\n-  'reachable.c',\n-  'read-cache.c',\n-  'rebase-interactive.c',\n-  'rebase.c',\n-  'ref-filter.c',\n-  'reflog-walk.c',\n-  'reflog.c',\n-  'refs.c',\n-  'refs/debug.c',\n-  'refs/files-backend.c',\n-  'refs/reftable-backend.c',\n-  'refs/iterator.c',\n-  'refs/packed-backend.c',\n-  'refs/ref-cache.c',\n-  'refspec.c',\n-  'reftable/basics.c',\n-  'reftable/error.c',\n-  'reftable/block.c',\n-  'reftable/blocksource.c',\n-  'reftable/fsck.c',\n-  'reftable/iter.c',\n-  'reftable/merged.c',\n-  'reftable/pq.c',\n-  'reftable/record.c',\n-  'reftable/stack.c',\n-  'reftable/system.c',\n-  'reftable/table.c',\n-  'reftable/tree.c',\n-  'reftable/writer.c',\n-  'remote.c',\n-  'repack.c',\n-  'repack-cruft.c',\n-  'repack-filtered.c',\n-  'repack-geometry.c',\n-  'repack-midx.c',\n-  'repack-promisor.c',\n-  'replace-object.c',\n-  'replay.c',\n-  'repo-settings.c',\n-  'repository.c',\n-  'rerere.c',\n-  'reset.c',\n-  'resolve-undo.c',\n-  'revision.c',\n-  'run-command.c',\n-  'send-pack.c',\n-  'sequencer.c',\n-  'serve.c',\n-  'server-info.c',\n-  'setup.c',\n-  'shallow.c',\n-  'sideband.c',\n-  'sigchain.c',\n-  'sparse-index.c',\n-  'split-index.c',\n-  'stable-qsort.c',\n-  'statinfo.c',\n-  'strbuf.c',\n-  'string-list.c',\n-  'strmap.c',\n-  'strvec.c',\n-  'sub-process.c',\n-  'submodule-config.c',\n-  'submodule.c',\n-  'symlinks.c',\n-  'tag.c',\n-  'tempfile.c',\n-  'thread-utils.c',\n-  'tmp-objdir.c',\n-  'trace.c',\n-  'trace2.c',\n-  'trace2/tr2_cfg.c',\n-  'trace2/tr2_cmd_name.c',\n-  'trace2/tr2_ctr.c',\n-  'trace2/tr2_dst.c',\n-  'trace2/tr2_sid.c',\n-  'trace2/tr2_sysenv.c',\n-  'trace2/tr2_tbuf.c',\n-  'trace2/tr2_tgt_event.c',\n-  'trace2/tr2_tgt_normal.c',\n-  'trace2/tr2_tgt_perf.c',\n-  'trace2/tr2_tls.c',\n-  'trace2/tr2_tmr.c',\n-  'trailer.c',\n-  'transport-helper.c',\n-  'transport.c',\n-  'tree-diff.c',\n-  'tree-walk.c',\n-  'tree.c',\n-  'unpack-trees.c',\n-  'upload-pack.c',\n-  'url.c',\n-  'urlmatch.c',\n-  'usage.c',\n-  'userdiff.c',\n-  'utf8.c',\n-  'version.c',\n-  'versioncmp.c',\n-  'walker.c',\n-  'wildmatch.c',\n-  'worktree.c',\n-  'wrapper.c',\n-  'write-or-die.c',\n-  'ws.c',\n-  'wt-status.c',\n-  'xdiff-interface.c',\n-  'xdiff/xdiffi.c',\n-  'xdiff/xemit.c',\n-  'xdiff/xhistogram.c',\n-  'xdiff/xmerge.c',\n-  'xdiff/xpatience.c',\n-  'xdiff/xprepare.c',\n-  'xdiff/xutils.c',\n+  'lib/abspath.c',\n+  'lib/add-interactive.c',\n+  'lib/add-patch.c',\n+  'lib/advice.c',\n+  'lib/alias.c',\n+  'lib/alloc.c',\n+  'lib/apply.c',\n+  'lib/archive-tar.c',\n+  'lib/archive-zip.c',\n+  'lib/archive.c',\n+  'lib/attr.c',\n+  'lib/base85.c',\n+  'lib/bisect.c',\n+  'lib/blame.c',\n+  'lib/blob.c',\n+  'lib/bloom.c',\n+  'lib/branch.c',\n+  'lib/bundle-uri.c',\n+  'lib/bundle.c',\n+  'lib/cache-tree.c',\n+  'lib/cbtree.c',\n+  'lib/chdir-notify.c',\n+  'lib/checkout.c',\n+  'lib/chunk-format.c',\n+  'lib/color.c',\n+  'lib/column.c',\n+  'lib/combine-diff.c',\n+  'lib/commit-graph.c',\n+  'lib/commit-reach.c',\n+  'lib/commit.c',\n+  'lib/common-exit.c',\n+  'lib/common-init.c',\n+  'lib/compiler-tricks/not-constant.c',\n+  'lib/config.c',\n+  'lib/connect.c',\n+  'lib/connected.c',\n+  'lib/convert.c',\n+  'lib/copy.c',\n+  'lib/credential.c',\n+  'lib/csum-file.c',\n+  'lib/ctype.c',\n+  'lib/date.c',\n+  'lib/decorate.c',\n+  'lib/delta-islands.c',\n+  'lib/diagnose.c',\n+  'lib/diff-delta.c',\n+  'lib/diff-merges.c',\n+  'lib/diff-lib.c',\n+  'lib/diff-no-index.c',\n+  'lib/diff.c',\n+  'lib/diffcore-break.c',\n+  'lib/diffcore-delta.c',\n+  'lib/diffcore-order.c',\n+  'lib/diffcore-pickaxe.c',\n+  'lib/diffcore-rename.c',\n+  'lib/diffcore-rotate.c',\n+  'lib/dir-iterator.c',\n+  'lib/dir.c',\n+  'lib/editor.c',\n+  'lib/entry.c',\n+  'lib/environment.c',\n+  'lib/ewah/bitmap.c',\n+  'lib/ewah/ewah_bitmap.c',\n+  'lib/ewah/ewah_io.c',\n+  'lib/ewah/ewah_rlw.c',\n+  'lib/exec-cmd.c',\n+  'lib/fetch-negotiator.c',\n+  'lib/fetch-pack.c',\n+  'lib/fmt-merge-msg.c',\n+  'lib/fsck.c',\n+  'lib/fsmonitor.c',\n+  'lib/fsmonitor-ipc.c',\n+  'lib/fsmonitor-settings.c',\n+  'lib/gettext.c',\n+  'lib/git-zlib.c',\n+  'lib/gpg-interface.c',\n+  'lib/graph.c',\n+  'lib/grep.c',\n+  'lib/hash-lookup.c',\n+  'lib/hash.c',\n+  'lib/hashmap.c',\n+  'lib/help.c',\n+  'lib/hex.c',\n+  'lib/hex-ll.c',\n+  'lib/hook.c',\n+  'lib/ident.c',\n+  'lib/json-writer.c',\n+  'lib/kwset.c',\n+  'lib/levenshtein.c',\n+  'lib/line-log.c',\n+  'lib/line-range.c',\n+  'lib/linear-assignment.c',\n+  'lib/list-objects-filter-options.c',\n+  'lib/list-objects-filter.c',\n+  'lib/list-objects.c',\n+  'lib/lockfile.c',\n+  'lib/log-tree.c',\n+  'lib/loose.c',\n+  'lib/ls-refs.c',\n+  'lib/mailinfo.c',\n+  'lib/mailmap.c',\n+  'lib/match-trees.c',\n+  'lib/mem-pool.c',\n+  'lib/merge-blobs.c',\n+  'lib/merge-ll.c',\n+  'lib/merge-ort.c',\n+  'lib/merge-ort-wrappers.c',\n+  'lib/merge.c',\n+  'lib/midx.c',\n+  'lib/midx-write.c',\n+  'lib/name-hash.c',\n+  'lib/negotiator/default.c',\n+  'lib/negotiator/noop.c',\n+  'lib/negotiator/skipping.c',\n+  'lib/notes-cache.c',\n+  'lib/notes-merge.c',\n+  'lib/notes-utils.c',\n+  'lib/notes.c',\n+  'lib/object-file-convert.c',\n+  'lib/object-file.c',\n+  'lib/object-name.c',\n+  'lib/object.c',\n+  'lib/odb.c',\n+  'lib/odb/source.c',\n+  'lib/odb/source-files.c',\n+  'lib/odb/source-inmemory.c',\n+  'lib/odb/source-loose.c',\n+  'lib/odb/source-packed.c',\n+  'lib/odb/streaming.c',\n+  'lib/odb/transaction.c',\n+  'lib/oid-array.c',\n+  'lib/oidmap.c',\n+  'lib/oidset.c',\n+  'lib/oidtree.c',\n+  'lib/pack-bitmap-write.c',\n+  'lib/pack-bitmap.c',\n+  'lib/pack-check.c',\n+  'lib/pack-mtimes.c',\n+  'lib/pack-objects.c',\n+  'lib/pack-refs.c',\n+  'lib/pack-revindex.c',\n+  'lib/pack-write.c',\n+  'lib/packfile.c',\n+  'lib/packfile-list.c',\n+  'lib/pager.c',\n+  'lib/parallel-checkout.c',\n+  'lib/parse.c',\n+  'lib/parse-options-cb.c',\n+  'lib/parse-options.c',\n+  'lib/patch-delta.c',\n+  'lib/patch-ids.c',\n+  'lib/path.c',\n+  'lib/path-walk.c',\n+  'lib/pathspec.c',\n+  'lib/pkt-line.c',\n+  'lib/preload-index.c',\n+  'lib/pretty.c',\n+  'lib/prio-queue.c',\n+  'lib/progress.c',\n+  'lib/promisor-remote.c',\n+  'lib/prompt.c',\n+  'lib/protocol.c',\n+  'lib/protocol-caps.c',\n+  'lib/prune-packed.c',\n+  'lib/pseudo-merge.c',\n+  'lib/quote.c',\n+  'lib/range-diff.c',\n+  'lib/reachable.c',\n+  'lib/read-cache.c',\n+  'lib/rebase-interactive.c',\n+  'lib/rebase.c',\n+  'lib/ref-filter.c',\n+  'lib/reflog-walk.c',\n+  'lib/reflog.c',\n+  'lib/refs.c',\n+  'lib/refs/debug.c',\n+  'lib/refs/files-backend.c',\n+  'lib/refs/reftable-backend.c',\n+  'lib/refs/iterator.c',\n+  'lib/refs/packed-backend.c',\n+  'lib/refs/ref-cache.c',\n+  'lib/refspec.c',\n+  'lib/reftable/basics.c',\n+  'lib/reftable/error.c',\n+  'lib/reftable/block.c',\n+  'lib/reftable/blocksource.c',\n+  'lib/reftable/fsck.c',\n+  'lib/reftable/iter.c',\n+  'lib/reftable/merged.c',\n+  'lib/reftable/pq.c',\n+  'lib/reftable/record.c',\n+  'lib/reftable/stack.c',\n+  'lib/reftable/system.c',\n+  'lib/reftable/table.c',\n+  'lib/reftable/tree.c',\n+  'lib/reftable/writer.c',\n+  'lib/remote.c',\n+  'lib/repack.c',\n+  'lib/repack-cruft.c',\n+  'lib/repack-filtered.c',\n+  'lib/repack-geometry.c',\n+  'lib/repack-midx.c',\n+  'lib/repack-promisor.c',\n+  'lib/replace-object.c',\n+  'lib/replay.c',\n+  'lib/repo-settings.c',\n+  'lib/repository.c',\n+  'lib/rerere.c',\n+  'lib/reset.c',\n+  'lib/resolve-undo.c',\n+  'lib/revision.c',\n+  'lib/run-command.c',\n+  'lib/send-pack.c',\n+  'lib/sequencer.c',\n+  'lib/serve.c',\n+  'lib/server-info.c',\n+  'lib/setu"}]}