add program version to snapshot

This commit is contained in:
Michael Eischer 2023-06-19 19:30:41 +02:00
parent a280b7364e
commit bbac74b172
4 changed files with 12 additions and 0 deletions

View file

@ -0,0 +1,7 @@
Enhancement: Include client version in snapshot metadata
The client version number is now included in the `program_version` field of a snapshot.
It can be inspected by using either `restic cat snapshot snapshotID` or `restic snapshots --json`.
https://github.com/restic/restic/issues/4188
https://github.com/restic/restic/pull/4378

View file

@ -645,6 +645,7 @@ func runBackup(ctx context.Context, opts BackupOptions, gopts GlobalOptions, ter
Time: timeStamp,
Hostname: opts.Host,
ParentSnapshot: parentSnapshot,
ProgramVersion: "restic " + version,
}
if !gopts.JSON {

View file

@ -680,6 +680,7 @@ type SnapshotOptions struct {
Excludes []string
Time time.Time
ParentSnapshot *restic.Snapshot
ProgramVersion string
}
// loadParentTree loads a tree referenced by snapshot id. If id is null, nil is returned.
@ -796,6 +797,7 @@ func (arch *Archiver) Snapshot(ctx context.Context, targets []string, opts Snaps
return nil, restic.ID{}, err
}
sn.ProgramVersion = opts.ProgramVersion
sn.Excludes = opts.Excludes
if opts.ParentSnapshot != nil {
sn.Parent = opts.ParentSnapshot.ID()

View file

@ -25,6 +25,8 @@ type Snapshot struct {
Tags []string `json:"tags,omitempty"`
Original *ID `json:"original,omitempty"`
ProgramVersion string `json:"program_version,omitempty"`
id *ID // plaintext ID, used during restore
}