Saved progress action log
Settings → Saved Data contains TortoiseGit's Action log group: Max. lines in action log, Show, and Clear. The default is 4000 lines. Entering 0 disables new records and leaves the existing log available for Show or Clear. Show opens the UTF-8 log in the system text viewer. Clear deletes this log only.
The following native progress windows save their displayed output when closed: Clone, Commit, Push, Fetch, Pull, Merge, Abort Merge, Switch, Reset, Clean, Export, Format Patch, Stash Save, New Worktree, Worktree management progress, Bisect, and Daemon. Each entry starts with an empty separator line, the local date and time, and the repository path (Clone uses its destination). Cancelled results append User cancelled. Quiet operations still save the header. The stored text follows the visible output limit, rather than the full raw output used internally to classify Git failures.
Retry and repeated operations save the previous result before replacing it. Format Patch saves when its progress result returns to the options page or hands off to Mail. Clean preserves the preview before performing deletion. Worktree creation saves on Back/close; management saves on progress Close/abort and before a new attempt. Lock/unlock progress is a native CLI adaptation. Logging failures do not change the Git result or block its recovery actions.
The line limit removes the oldest lines first. Like TortoiseGit, it always keeps
the whole newest operation, even when that operation alone exceeds the limit.
The app stores the log locally at TurtleGit/logfile.txt in its Application
Support directory; sandboxed builds use their private container. Log files use
owner-only permissions, and concurrent writers are serialized. This log can
contain displayed Git/hook output, paths and remote addresses. It is not
uploaded by TurtleGit.
Source and verification
Compared against pinned TortoiseGit 7338078f8ddd924b8cddee35f512f2286072136d:
src/TortoiseProc/LogFile.cpp/.h, ProgressDlg.cpp::WriteLog,
Settings/SetSavedDataPage.cpp/.h, and the Action log group in Resources/TortoiseProcENG.rc.
Native storage, UTF-8 encoding, atomic replacement and file locking replace
Windows local-app-data, MFC text files and sharing flags. Preferences save valid
values immediately, following the macOS Settings convention.
Core tests exercise source line splitting, Unicode, cancellation, permissions,
retention, concurrent writers, disabling and clearing. The headless native
receiver uses private temporary storage, real Git Reset results, actual hidden
window controllers, Retry, quiet output, settings validation, Show/Clear
callbacks and write-failure isolation. Run swift test --filter ActionLogTests
and, after a Debug build, python3 scripts/test-action-log.py.
The Saved Data guide covers URL/message histories and stored decisions. Other saved-data groups remain to be ported. Other progress implementations, including replay and reference restoration, have not yet been wired to this persistent log. Physical Show/text-viewer UI, signed sandbox persistence and App Store distribution remain unverified.
Daemon saves after its process finishes when the result closes. Forced closure keeps process ownership until drain, then records the final bounded output without reopening the retired window. The initial security-warning page creates no Action log entry. See Daemon progress.