From c53da5a9a1da1b29db24d4e1ce2b294514d99ac2 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 17 Dec 2024 00:00:49 -0600 Subject: smarter and faster mtime logic --- repo.proto | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'repo.proto') diff --git a/repo.proto b/repo.proto index 840804c..71f3010 100644 --- a/repo.proto +++ b/repo.proto @@ -34,6 +34,11 @@ message Repo { // `autogenpb:marshal` string desc = 20; // what is this repo? bytes goMod = 21; // the last go.mod file bytes goSum = 22; // the last go.sum file + google.protobuf.Timestamp mtimeGitDir = 23; // mtime for ./git + google.protobuf.Timestamp mtimeGitHead = 24; // mtime for ./git/HEAD // these two mtimes allow really fast checks to see if git has changed + GitTimes times = 25; // store all the mtime values here. these are temporary + GoInfo goInfo = 26; // put all the go specifcs here + string stateChange = 27; // reason for state change } message Repos { // `autogenpb:marshal` @@ -41,3 +46,29 @@ message Repos { // `autogenpb:marshal` string version = 2; // maybe can be used for protobuf schema change violations repeated Repo repos = 3; } + +// should it be done this way? +message GitTimes { + google.protobuf.Timestamp lastPull = 1; // last time a git pull was done + google.protobuf.Timestamp lastUpdate = 2; // when was ReloadGit() last done + google.protobuf.Timestamp lastDirty = 3; // last time CheckDirty() was run + google.protobuf.Timestamp mtimeDir = 4; // mtime for ./git // maybe useful to track + google.protobuf.Timestamp mtimeHead = 5; // mtime for ./git/HEAD // these two mtimes allow really fast checks to see if git has changed + google.protobuf.Timestamp mtimeIndex = 6; // mtime for ./git/HEAD // probably always in sync with HEAD + google.protobuf.Timestamp mtimeFetch = 7; // mtime for ./git/FETCH_HEAD // last time 'git fetch' or 'git pull' was run on current branch? +} + +// this is probably better. think about moving to this instead +message GoInfo { + string goPath = 1; // the logical path as used by golang: 'go.wit.com/apps/helloworld' + string desc = 2; // what is this repo? + bool goLibrary = 3; // is this a golang library? + bool goBinary = 4; // is this a golang binary? + bool goPrimitive = 5; // if this is a golang primitive (only has go.mod) + bool goPlugin = 6; // is this a golang plugin? + bool goProtobuf = 7; // autogen go files from .proto + GoDeps goDeps = 8; // what is in the go.sum file + GoDeps published = 9; // the last published go.mod/go.sum + bytes goMod = 10; // the last go.mod file + bytes goSum = 11; // the last go.sum file +} -- cgit v1.2.3