Home

Pierre-Olivier Latour edited this page Jan 1, 2017 · 8 revisions

GitUp Limitations and Known Issues

Core

  • GitUp has been extensively optimized and tested on repositories up to 150,000 commits, thousands of files and dozens of branches & tags, which is an order of magnitude more than the vast majority of repos out there.
    • However GitUp is not presently designed nor optimized for very large repositories, especially ones with huge amount of files (e.g. like Google Chromium with 80,000 files), and will be quite slow with them.
  • Only a subset of Git hooks are supported: pre-commit, commit-msg, post-commit and pre-push.
    • Since Git hooks are run directly from GitUp instead of being executed from the Terminal's shell like with Git command line, some environment variables will differ and this could affect the behavior of the hooks.
  • GitUp only supports Git attributes supported by libgit2 i.e. crlf, eol, text and ident.
    • GitUp also natively supports Git LFS assuming the command line tool is installed at /usr/local/bin/git-lfs.
  • GitUp ignores the actual value of the core.precomposeUnicode Git configuration option and assumes it's always true (which should really be the case on OS X anyway).
  • Git shallow clones are not fully supported: fetching may not work in all cases and merges may not either.
  • SSH config files (typically located at ~/.ssh/config) are ignored by GitUp since it uses libssh2 and not the ssh tool for SSH remote operations.
    • GitUp first attempts to find SSH private keys using the ssh-agent
    • It then tries all private key files in ~/.ssh/
  • Pattern based exceptions in Git attribute files are not taken into account due to a bug in libgit2.
  • The diff engine assumes all text is UTF-8 encoded.
  • Diffs of large single-line files e.g. minified JS / CSS can be slow.

Interface