# Add version subcommand to git-sync CLI

`edc6658`→[main](/content/gh/entireio/git-sync/commits/main/index.html)·

gtrrz-victor·2mo ago·2 files·+13 added/-0 removed

Introduces an internal versioninfo package with Version, Commit, and Date vars intended for ldflag injection at release time, and wires a `version` / `--version` case in the main switch. The `-v` alias is intentionally not used since every subcommand already binds it to verbose logging.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

## Sessions

6835294d1897View transcript

## Changes

2

- cmd/git-sync
  
  - internal/versioninfo

- Aversioninfo.go+7

- Mmain.go+6

```
1
2
3
4
5
6
7

package versioninfo

var (
	Version = "dev"
	Commit  = "none"
	Date    = "unknown"
)
```

Acmd/git-sync/internal/versioninfo/versioninfo.go+7

```
9 unmodified lines

10
11
12
13
14
15
16
24 unmodified lines

41
42
43
44
45
46
47
48
49
50
385 unmodified lines

436
437
438
439
440
441
442

9 unmodified lines

"strings"

"entire.io/entire/gitsync"
	"entire.io/entire/gitsync/cmd/git-sync/internal/versioninfo"
	"entire.io/entire/gitsync/internal/validation"
	"entire.io/entire/gitsync/unstable"
	"github.com/go-git/go-git/v6/plumbing"
24 unmodified lines

return runProbe(ctx, args[1:])
	case "fetch":
		return runFetch(ctx, args[1:])
	case "version", "--version":
		fmt.Printf("git-sync %s (commit %s, built %s)\n",
			versioninfo.Version, versioninfo.Commit, versioninfo.Date)
		return nil
	case "help", "-h", "--help":
		return usageError("")
	default:
385 unmodified lines

git-sync bootstrap [flags] <source-url> <target-url>
  git-sync probe [flags] <source-url> [target-url]
  git-sync fetch [flags] <source-url>
  git-sync version

sync flags:
  --branch main,dev
