AGENTS.md 2.2 KB

Repository Guidelines

Project Structure & Module Organization

The root contains a single Bash entry point, svn_git_init, which automates cloning a subdirectory from an SVN repository into a Git checkout. It creates a transient trunk-git/ working tree, so keep temporary artifacts out of version control. Place future helpers beside the script and document new folders directly in this section.

Build, Test, and Development Commands

Run the script from the SVN subdirectory you want to migrate: bash svn_git_init. Make it executable locally with chmod +x svn_git_init if you prefer ./svn_git_init. Lint changes before committing via shellcheck svn_git_init, and rely on set -euo pipefail semantics if you introduce new entry points.

Coding Style & Naming Conventions

Follow the existing two-space indentation and align continued command options for readability. Use uppercase SNAKE_CASE for environment or exported variables and lowercase for locals. Always wrap variable expansions in quotes and prefer modern Bash features ($(...), [[ ]]). Keep inline comments focused on non-obvious logic, such as awk pipelines or revision math.

Testing Guidelines

There is no automated suite yet; validate behavior by running against a disposable SVN repository. You can create one with svnadmin create /tmp/demo && svn import ... to exercise first-of-branch detection and progress output. Confirm git svn fetch completes and that the resulting trunk-git/.git/config points at the expected subpath. Treat shellcheck as a gate—PRs should pass with zero warnings.

Commit & Pull Request Guidelines

Use imperative, one-line commit subjects (e.g., Refine progress reporting). Reference related tickets in the body when relevant and note any manual verification performed. PRs should include a concise summary, reproduction or validation steps, and mention any new dependencies (git svn, shellcheck, etc.). Attach console output snippets if they highlight edge cases.

Security & Configuration Tips

The script destroys trunk-git/ on each run; double-check the target path before invoking. Avoid adding commands that require network credentials without documenting the expectation, and keep quoting strict to prevent word splitting when paths contain spaces.