Known Issues

Limits of Phogit 1.0 that are worth knowing about, with workarounds where there are any. Features that simply aren’t in 1.0 yet are listed on the roadmap.

Connecting and signing in

  • SSH doesn’t support RSA. Phogit’s SSH works with Ed25519 and ECDSA keys only. Servers that offer only RSA, such as Azure DevOps and very old OpenSSH servers, can’t be reached over SSH; Phogit says they have no SSH algorithm in common.

Workaround: Use the repository’s HTTPS URL (https://host/owner/repo), with a personal access token for private repositories.

  • SSH keys can’t be imported. Phogit uses only keys it creates, so the key on your computer can’t come along. SSH passwords, ~/.ssh/config and jump hosts aren’t supported either.

Workaround: Create a key in Phogit and add its public key to your host next to your other keys.

  • Deleting an SSH key doesn’t remove it from your hosts. The public key stays on your account until you remove it there.

Workaround: When you delete a key, also remove it on the host (GitHub, GitLab, Bitbucket, Codeberg).

  • Removing a token doesn’t revoke it on the server. Removing an account in Settings › Accounts & Tokens deletes Phogit’s copy, but the token keeps working on the host until it expires. iOS can also keep Keychain items after an app is deleted.

Workaround: When you’re done with a token, revoke it in your host’s settings (GitHub, GitLab, Atlassian/Bitbucket). For Sign in with GitHub, revoke Phogit under Authorized OAuth Apps. A revoked token stops working everywhere.

Repositories and branches

  • Push uses the local branch’s name on the remote. If a branch tracks a remote branch with a different name (say main tracking origin/trunk), the Push sheet still fills in main and pushes to origin/main, not origin/trunk.

Workaround: In Branches, rename the local branch to match the remote one before pushing.

  • Remote branches appear after a fetch. The Branches screen lists the remote branches your last fetch or pull downloaded; fetch to see new ones.
  • Submodule folders are empty, and Git LFS files appear as pointer files. Neither submodules nor LFS are supported yet.
  • Don’t rename or move a repository’s folder in the Files app. Phogit then lists it as Folder not found. Remove it from the list and clone it again.

Editor and previews

  • Files over 5 MB aren’t opened in the editor. Phogit shows the file’s size and the limit instead. You can still stage, commit and push the file, and open it in another app through the Files app.
  • Binary files aren’t shown. Images (PNG, JPEG, GIF, HEIC, WebP) are displayed; other binary files get an explanation.
  • Highlighting covers 19 languages. Code Editor lists them. TypeScript-only syntax, such as type annotations, may not be colored. Other files open as plain text.
  • R Markdown and Quarto previews don’t run code. .Rmd and .qmd files preview as Markdown, with code chunks shown as code blocks.
  • Previews are deliberately limited. HTML previews run without JavaScript or remote resources, and notebook previews show text outputs only, not plots or widgets.

Changes

  • Very large diffs are cut off after a few thousand lines.
  • Changed images don’t get a visual diff. The file is listed, but its diff shows No Diff to Show.

Commit graph

  • Wide graphs are clipped. The graph draws up to 6 lanes on iPhone and 12 on iPad. Commits on further lanes are still listed, but their lines aren’t drawn.
  • Search covers loaded commits. Tap Search Older Commits to search further back.
  • Commit details don’t list changed files in 1.0.
  • Merge commits can’t be reverted. Revert Commit… works on ordinary commits; for a merge commit Phogit says reverting a merge commit isn’t supported yet.

General

  • No background sync. Phogit doesn’t fetch while it’s closed. Fetch or pull when you open it.
  • Transfers get only a little time in the background. A clone, fetch, pull or push keeps going briefly if you switch apps, but iOS limits that time; when it runs out, Phogit cancels the transfer cleanly. Keep Phogit open for long transfers.
  • Uninstalling deletes your repositories. Push anything you want to keep before deleting the app.