Embed git commit hash in the document file (#1325)

* Embed git commit hash in the document file

* Bump version in test document file

* Fixes

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Dennis Kobert 2023-07-28 22:52:26 +02:00 committed by Keavon Chambers
parent 8bdc64bb8b
commit a49d96ed37
6 changed files with 21 additions and 8 deletions

View file

@ -28,6 +28,8 @@ pub struct Document {
pub state_identifier: DefaultHasher,
#[serde(default)]
pub document_network: graph_craft::document::NodeNetwork,
#[serde(default)]
pub commit_hash: String,
}
impl PartialEq for Document {
@ -54,6 +56,7 @@ impl Default for Document {
network.push_node(node, false);
network
},
commit_hash: String::new(),
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -79,7 +79,7 @@ pub const DEFAULT_FONT_FAMILY: &str = "Merriweather";
pub const DEFAULT_FONT_STYLE: &str = "Normal (400)";
// Document
pub const GRAPHITE_DOCUMENT_VERSION: &str = "0.0.16"; // Remember to save a simple document and replace the test file `graphite-test-document.graphite`
pub const GRAPHITE_DOCUMENT_VERSION: &str = "0.0.17"; // Remember to save a simple document and replace the test file `graphite-test-document.graphite`
pub const DEFAULT_DOCUMENT_NAME: &str = "Untitled Document";
pub const FILE_SAVE_SUFFIX: &str = ".graphite";
pub const MAX_UNDO_HISTORY_LEN: usize = 100; // TODO: Add this to user preferences

View file

@ -76,8 +76,12 @@ pub struct DocumentMessageHandler {
impl Default for DocumentMessageHandler {
fn default() -> Self {
let document_legacy = DocumentLegacy {
commit_hash: crate::application::GRAPHITE_GIT_COMMIT_HASH.to_string(),
..Default::default()
};
Self {
document_legacy: DocumentLegacy::default(),
document_legacy,
saved_document_identifier: 0,
auto_saved_document_identifier: 0,
name: String::from("Untitled Document"),

View file

@ -317,6 +317,7 @@ impl MessageHandler<PortfolioMessage, (&InputPreprocessorMessageHandler, &Prefer
self.load_document(document, document_id, responses);
}
Err(e) => {
println!("Failed to open document: {}", e);
if !document_is_auto_saved {
responses.add(DialogMessage::DisplayDialogError {
title: "Failed to open document".to_string(),