mirror of
https://github.com/gitbutlerapp/gitbutler.git
synced 2024-12-19 07:32:22 +03:00
Merge pull request #3666 from gitbutlerapp/unix-timestamp
eliminate redundancy in unix timestamp retrieval
This commit is contained in:
commit
f5ef57e74d
@ -1,7 +1,4 @@
|
||||
use std::{
|
||||
fmt::{Display, Formatter},
|
||||
time::SystemTime,
|
||||
};
|
||||
use std::fmt::{Display, Formatter};
|
||||
|
||||
use anyhow::Result;
|
||||
|
||||
@ -50,29 +47,20 @@ impl Document {
|
||||
};
|
||||
|
||||
let operations = operations::get_delta_operations(&self.to_string(), new_text);
|
||||
let delta = if operations.is_empty() {
|
||||
|
||||
if operations.is_empty() {
|
||||
if let Some(reader::Content::UTF8(value)) = value {
|
||||
if !value.is_empty() {
|
||||
return Ok(None);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delta::Delta {
|
||||
let delta = delta::Delta {
|
||||
operations,
|
||||
timestamp_ms: SystemTime::now()
|
||||
.duration_since(SystemTime::UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_millis(),
|
||||
}
|
||||
} else {
|
||||
delta::Delta {
|
||||
operations,
|
||||
timestamp_ms: SystemTime::now()
|
||||
.duration_since(SystemTime::UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_millis(),
|
||||
}
|
||||
timestamp_ms: crate::time::now_ms(),
|
||||
};
|
||||
|
||||
apply_deltas(&mut self.doc, &vec![delta.clone()])?;
|
||||
self.deltas.push(delta.clone());
|
||||
Ok(Some(delta))
|
||||
|
@ -4,7 +4,7 @@ use std::{
|
||||
collections::HashSet,
|
||||
fs::File,
|
||||
io::{BufReader, Read},
|
||||
path, time,
|
||||
path,
|
||||
};
|
||||
|
||||
use anyhow::{anyhow, bail, Context, Result};
|
||||
@ -280,10 +280,7 @@ impl Repository {
|
||||
&self,
|
||||
project_repository: &project_repository::Repository,
|
||||
) -> Result<sessions::Session> {
|
||||
let now_ms = time::SystemTime::now()
|
||||
.duration_since(time::UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_millis();
|
||||
let now_ms = crate::time::now_ms();
|
||||
|
||||
let meta = match project_repository.get_head() {
|
||||
Result::Ok(head) => sessions::Meta {
|
||||
@ -336,10 +333,7 @@ impl Repository {
|
||||
|
||||
let updated_session = sessions::Session {
|
||||
meta: sessions::Meta {
|
||||
last_timestamp_ms: time::SystemTime::now()
|
||||
.duration_since(time::UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_millis(),
|
||||
last_timestamp_ms: crate::time::now_ms(),
|
||||
..current_session.meta
|
||||
},
|
||||
..current_session
|
||||
|
@ -33,6 +33,7 @@ pub mod sessions;
|
||||
pub mod snapshots;
|
||||
pub mod ssh;
|
||||
pub mod storage;
|
||||
pub mod time;
|
||||
pub mod types;
|
||||
pub mod users;
|
||||
pub mod virtual_branches;
|
||||
|
@ -178,17 +178,11 @@ impl Repository {
|
||||
let branch = self.git_repository.find_branch(&target_branch_refname)?;
|
||||
let commit_id = branch.peel_to_commit()?.id();
|
||||
|
||||
let now = std::time::SystemTime::now()
|
||||
.duration_since(std::time::UNIX_EPOCH)
|
||||
.unwrap_or(std::time::Duration::from_secs(0))
|
||||
.as_millis()
|
||||
.to_string();
|
||||
let branch_name = format!("test-push-{}", now);
|
||||
let now = crate::time::now_ms();
|
||||
let branch_name = format!("test-push-{now}");
|
||||
|
||||
let refname = git::RemoteRefname::from_str(&format!(
|
||||
"refs/remotes/{}/{}",
|
||||
remote_name, branch_name,
|
||||
))?;
|
||||
let refname =
|
||||
git::RemoteRefname::from_str(&format!("refs/remotes/{remote_name}/{branch_name}",))?;
|
||||
|
||||
match self.push(
|
||||
&commit_id,
|
||||
|
@ -1,5 +1,3 @@
|
||||
use std::time;
|
||||
|
||||
use anyhow::{anyhow, Context, Result};
|
||||
|
||||
use super::Session;
|
||||
@ -55,11 +53,7 @@ impl<'writer> SessionWriter<'writer> {
|
||||
|
||||
let mut batch = vec![writer::BatchTask::Write(
|
||||
"session/meta/last",
|
||||
time::SystemTime::now()
|
||||
.duration_since(time::SystemTime::UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_millis()
|
||||
.to_string(),
|
||||
crate::time::now_ms().to_string(),
|
||||
)];
|
||||
|
||||
if current_session_id.is_some()
|
||||
|
12
crates/gitbutler-core/src/time.rs
Normal file
12
crates/gitbutler-core/src/time.rs
Normal file
@ -0,0 +1,12 @@
|
||||
use std::time::UNIX_EPOCH;
|
||||
|
||||
/// Gets the number of milliseconds since the Unix epoch.
|
||||
///
|
||||
/// # Panics
|
||||
/// Panics if the system time is set before the Unix epoch.
|
||||
pub fn now_ms() -> u128 {
|
||||
UNIX_EPOCH
|
||||
.elapsed()
|
||||
.expect("system time is set before the Unix epoch")
|
||||
.as_millis()
|
||||
}
|
@ -212,10 +212,7 @@ pub fn set_base_branch(
|
||||
},
|
||||
);
|
||||
|
||||
let now_ms = time::UNIX_EPOCH
|
||||
.elapsed()
|
||||
.context("failed to get elapsed time")?
|
||||
.as_millis();
|
||||
let now_ms = crate::time::now_ms();
|
||||
|
||||
let (upstream, upstream_head) = if let git::Refname::Local(head_name) = &head_name {
|
||||
let upstream_name = target_branch_ref.with_branch(head_name.branch());
|
||||
|
@ -1118,11 +1118,6 @@ pub fn create_virtual_branch(
|
||||
}
|
||||
}
|
||||
|
||||
let now = time::UNIX_EPOCH
|
||||
.elapsed()
|
||||
.context("failed to get elapsed time")?
|
||||
.as_millis();
|
||||
|
||||
let name = dedup(
|
||||
&all_virtual_branches
|
||||
.iter()
|
||||
@ -1134,6 +1129,8 @@ pub fn create_virtual_branch(
|
||||
.unwrap_or(&"Virtual branch".to_string()),
|
||||
);
|
||||
|
||||
let now = crate::time::now_ms();
|
||||
|
||||
let mut branch = Branch {
|
||||
id: BranchId::generate(),
|
||||
name,
|
||||
@ -4189,10 +4186,7 @@ pub fn create_virtual_branch_from_branch(
|
||||
.any(|b| b.selected_for_changes.is_some()))
|
||||
.then_some(chrono::Utc::now().timestamp_millis());
|
||||
|
||||
let now = time::UNIX_EPOCH
|
||||
.elapsed()
|
||||
.context("failed to get elapsed time")?
|
||||
.as_millis();
|
||||
let now = crate::time::now_ms();
|
||||
|
||||
// only set upstream if it's not the default target
|
||||
let upstream_branch = match upstream {
|
||||
|
Loading…
Reference in New Issue
Block a user