move to better patchset protobuf

This commit is contained in:
Jeff Carr 2025-03-02 04:13:27 -06:00
parent 9d5bae8a14
commit 4193f41847
3 changed files with 57 additions and 97 deletions

View File

@ -53,3 +53,10 @@ message ForgeConfigs { // `autogenpb:mar
string defaultGui = 7; // default GUI plugin to use string defaultGui = 7; // default GUI plugin to use
ForgeMode mode = 8; // what "mode" forge is in ForgeMode mode = 8; // what "mode" forge is in
} }
// this generic message is used by autogen to identify and
// then dump the uuid and version from any arbitrary .pb file
message Identify { // `autogenpb:marshal`
string uuid = 1; //
string version = 2; //
}

View File

@ -1,44 +1,72 @@
// Copyright 2025 WIT.COM Inc Licensed GPL 3.0
syntax = "proto3"; syntax = "proto3";
package forgepb; package forgepb;
import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp
// this generic message is used by autogen to identify and // I don't need this kind of specicivity (can't spell)
// then dump the uuid and version from any arbitrary .pb file // but this is what the patch files contain and how git sees them
message Identify { // `autogenpb:marshal` // message Blob {
string uuid = 1; // // string hunkLine = 1;
string version = 2; // // 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 { message Patch {
string filename = 1; // `autogenpb:unique` `autogenpb:sort` string repoNamespace = 1; // the base repo git URL
bytes data = 2; // bytes data = 2; // the raw data of the whole patch
string repoPath = 3; // path to the git repo string gH = 3; // after some deliberation, I think I'll just try variable names
string branchName = 4; // string gT = 4;
string branchHash = 5; // string gP = 5;
google.protobuf.Timestamp ctime = 7; // the git commit timestamp of this patch string gs = 6;
string commitHash = 8; // the git commit hash of this patch string gaI = 7; // that exactly match what git uses.
string startHash = 9; // the start commit hash string gan = 8;
repeated string Files = 10; // the filenames this patch changes string gae = 9;
string comment = 11; // the git commit message (in patch form) string gcI = 10;
string repoNamespace = 12; // the base repo git URL string gcn = 11;
string newHash = 13; // new hash after git am string gce = 12;
string gN = 13;
string gGG = 14;
string gGS = 15;
string gGK = 16;
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
string comment = 22; // the git commit message (in patch form)
repeated string Files = 23; // the filenames this patch changes
} }
message Patches { // `autogenpb:marshal` message Patches { // this is a "PATCH: [1/x]" series
string uuid = 1; // `autogenpb:uuid:be926ad9-1111-484c-adf2-d96eeabf3079` // todo: add autogenpb support for this string uuid = 1; // `autogenpb:uuid:be926ad9-1111-484c-adf2-d96eeabf3079` // todo: add autogenpb support for this
string version = 2; // `autogenpb:version:v0.0.45` // todo: add autogenpb support for this string version = 2; // `autogenpb:version:v0.0.45` // todo: add autogenpb support for this
repeated Patch Patches = 3; repeated Patch Patches = 3;
} }
message Patchset { // `autogenpb:marshal` message Patchset { // `autogenpb:marshal`
Patches patches = 1; // `autogenpb:unique` `autogenpb:sort` Patches patches = 1; //
string name = 2; // `autogenpb:sort` string name = 2; // `autogenpb:sort`
string comment = 3; // string comment = 3; //
string gitAuthorName = 4; // `autogenpb:sort` string gitAuthorName = 4; // `autogenpb:sort`
string gitAuthorEmail = 5; // string gitAuthorEmail = 5; //
google.protobuf.Timestamp ctime = 6; // create time of this patchset google.protobuf.Timestamp ctime = 6; // create time of the patchset
string tmpDir = 7; // temp dir string tmpDir = 7; // temp dir
string startBranchName = 8; // string startBranchName = 8; //
string endBranchName = 9; // string endBranchName = 9; //
@ -46,6 +74,7 @@ message Patchset { // `autogenpb:mars
string endBranchHash = 11; // string endBranchHash = 11; //
string state = 12; // the state of the patch string state = 12; // the state of the patch
string uuid = 13; // identify each patchset somehow string uuid = 13; // identify each patchset somehow
} }
message Patchsets { // `autogenpb:marshal` message Patchsets { // `autogenpb:marshal`

View File

@ -1,76 +0,0 @@
// 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
// I don't need this kind of specicivity (can't spell)
// 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 repoNamespace = 1; // the base repo git URL
bytes data = 2; // the raw data of the whole patch
string gH = 3; // after some deliberation, I think I'll just try variable names
string gT = 4;
string gP = 5;
string gs = 6;
string gaI = 7; // that exactly match what git uses.
string gan = 8;
string gae = 9;
string gcI = 10;
string gcn = 11;
string gce = 12;
string gN = 13;
string gGG = 14;
string gGS = 15;
string gGK = 16;
string newHash = 17; // new hash
string state = 18; // the 'state' of the patch
}
message Patches { // this is a "PATCH: [1/x]" series
string uuid = 1; // `autogenpb:uuid:be926ad9-1111-484c-adf2-d96eeabf3079` // todo: add autogenpb support for this
string version = 2; // `autogenpb:version:v0.0.45` // todo: add autogenpb support for this
repeated Patch Patches = 3;
}
message Patchset { // `autogenpb:marshal`
Patches patches = 1; //
string name = 2; // `autogenpb:sort`
string comment = 3; //
string gitAuthorName = 4; // `autogenpb:sort`
string gitAuthorEmail = 5; //
google.protobuf.Timestamp ctime = 6; // create time of the patchset
string tmpDir = 7; // temp dir
string startBranchName = 8; //
string endBranchName = 9; //
string startBranchHash = 10; //
string endBranchHash = 11; //
}
message Patchsets { // `autogenpb:marshal`
string uuid = 1; // `autogenpb:uuid:be926ad9-f07f-484c-adf2-d96eeabf3079` // todo: add autogenpb support for this
string version = 2; // `autogenpb:version:v0.0.45` // todo: add autogenpb support for this
repeated Patchset Patchsets = 3;
}