diff options
Diffstat (limited to 'patch.proto')
| -rw-r--r-- | patch.proto | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/patch.proto b/patch.proto new file mode 100644 index 0000000..42c0ef3 --- /dev/null +++ b/patch.proto @@ -0,0 +1,69 @@ +// Copyright 2025 WIT.COM Inc Licensed GPL 3.0 + +syntax = "proto3"; + +package forgepb; + +import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp + +// Forge doesn't need this kind of specificity +// but this is what the patch files contain and how git sees them +// message Blob { +// string hunkLine = 1; +// bytes data = 2; +// } +// +// message File { +// string filename = 1; +// string hashLine = 2; +// repeated Blob Blobs = 3; +// } +// +// message Patch { +// repeated File Files = 1; +// string repoNamespace = 2; +// string gH = 3; +// string gaI = 4; +// string gcI = 5; +// } + +// git log -1 --format="%H %aI %cI %an %ae %cn %ce" + +message Patch { + string namespace = 1; // the base repo git namespace + bytes data = 2; // the raw data of the whole patch + string gH = 3; // Commit Hash (%H) + string gT = 4; // Tree Hash (%T) + string gP = 5; // Parent Hashes (%P) + string gs = 6; // Subject (%s) + string gaI = 7; // Author Date, ISO 8601 format (%aI) + string gan = 8; // Author Name (%an) + string gae = 9; // Author Email (%ae) + string gcI = 10; // Committer Date, ISO 8601 format (%cI) + string gcn = 11; // Committer Name (%cn) + string gce = 12; // Committer Email (%ce) + string gN = 13; // Commit Notes (%N) + string gGG = 14; // GPG Signature, raw (%GG) + string gGS = 15; // GPG Signer Name (%GS) + string gGK = 16; // GPG Key ID (%GK) + string newHash = 17; // new hash + string state = 18; // the 'state' of the patch + string filename = 19; // `autogenpb:unique` `autogenpb:sort` + string startHash = 20; // the start commit hash + string commitHash = 21; // the git commit hash of this patch `autogenpb:sort` `autogenpb:unique` + string comment = 22; // the git commit message (in patch form) + repeated string Files = 23; // the filenames this patch changes + google.protobuf.Timestamp ctime = 24; // create time of the patch + bool applied = 25; // have you applied this patch? + bool upstream = 26; // has this patch been applied upstream? + string patchId = 27; // patchId + string treeHash = 28; // final tree Hash +} + +// this is a "PATCH: [1/x]" series +message Patches { // `autogenpb:marshal` `autogenpb:gui:Patch` `autogenpb:http autogenpb:var:Patches` + string uuid = 1; // `autogenpb:uuid:2679065e-c81d-4a00-aca4-03c158a834fb` + string version = 2; // `autogenpb:version:v2.0.0` + repeated Patch patches = 3; + string Error = 4; // when passing these around, if there is an error, store it here +} |
