mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-28 23:32:41 +00:00
object_id: add ChangeId::reverse_hex() for convenience
Borrowed from #4470.
This commit is contained in:
parent
e415c09ede
commit
59c635bfd0
4 changed files with 14 additions and 12 deletions
|
@ -64,7 +64,6 @@ use jj_lib::git;
|
||||||
use jj_lib::git_backend::GitBackend;
|
use jj_lib::git_backend::GitBackend;
|
||||||
use jj_lib::gitignore::GitIgnoreError;
|
use jj_lib::gitignore::GitIgnoreError;
|
||||||
use jj_lib::gitignore::GitIgnoreFile;
|
use jj_lib::gitignore::GitIgnoreFile;
|
||||||
use jj_lib::hex_util::to_reverse_hex;
|
|
||||||
use jj_lib::id_prefix::IdPrefixContext;
|
use jj_lib::id_prefix::IdPrefixContext;
|
||||||
use jj_lib::matchers::Matcher;
|
use jj_lib::matchers::Matcher;
|
||||||
use jj_lib::merge::MergedTreeValue;
|
use jj_lib::merge::MergedTreeValue;
|
||||||
|
@ -2657,9 +2656,7 @@ pub fn short_commit_hash(commit_id: &CommitId) -> String {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn short_change_hash(change_id: &ChangeId) -> String {
|
pub fn short_change_hash(change_id: &ChangeId) -> String {
|
||||||
// TODO: We could avoid the unwrap() and make this more efficient by converting
|
change_id.reverse_hex()[0..12].to_string()
|
||||||
// straight from binary.
|
|
||||||
to_reverse_hex(&change_id.hex()[0..12]).unwrap()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn short_operation_hash(operation_id: &OperationId) -> String {
|
pub fn short_operation_hash(operation_id: &OperationId) -> String {
|
||||||
|
|
|
@ -31,7 +31,6 @@ use jj_lib::fileset;
|
||||||
use jj_lib::fileset::FilesetDiagnostics;
|
use jj_lib::fileset::FilesetDiagnostics;
|
||||||
use jj_lib::fileset::FilesetExpression;
|
use jj_lib::fileset::FilesetExpression;
|
||||||
use jj_lib::git;
|
use jj_lib::git;
|
||||||
use jj_lib::hex_util::to_reverse_hex;
|
|
||||||
use jj_lib::id_prefix::IdPrefixContext;
|
use jj_lib::id_prefix::IdPrefixContext;
|
||||||
use jj_lib::id_prefix::IdPrefixIndex;
|
use jj_lib::id_prefix::IdPrefixIndex;
|
||||||
use jj_lib::matchers::Matcher;
|
use jj_lib::matchers::Matcher;
|
||||||
|
@ -1249,11 +1248,7 @@ impl CommitOrChangeId {
|
||||||
pub fn hex(&self) -> String {
|
pub fn hex(&self) -> String {
|
||||||
match self {
|
match self {
|
||||||
CommitOrChangeId::Commit(id) => id.hex(),
|
CommitOrChangeId::Commit(id) => id.hex(),
|
||||||
CommitOrChangeId::Change(id) => {
|
CommitOrChangeId::Change(id) => id.reverse_hex(),
|
||||||
// TODO: We can avoid the unwrap() and make this more efficient by converting
|
|
||||||
// straight from bytes.
|
|
||||||
to_reverse_hex(&id.hex()).unwrap()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ use futures::stream::BoxStream;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
use crate::content_hash::ContentHash;
|
use crate::content_hash::ContentHash;
|
||||||
|
use crate::hex_util;
|
||||||
use crate::index::Index;
|
use crate::index::Index;
|
||||||
use crate::merge::Merge;
|
use crate::merge::Merge;
|
||||||
use crate::object_id::id_type;
|
use crate::object_id::id_type;
|
||||||
|
@ -50,6 +51,16 @@ id_type!(pub FileId);
|
||||||
id_type!(pub SymlinkId);
|
id_type!(pub SymlinkId);
|
||||||
id_type!(pub ConflictId);
|
id_type!(pub ConflictId);
|
||||||
|
|
||||||
|
impl ChangeId {
|
||||||
|
/// Returns the hex string representation of this ID, which uses `z-k`
|
||||||
|
/// "digits" instead of `0-9a-f`.
|
||||||
|
pub fn reverse_hex(&self) -> String {
|
||||||
|
// TODO: We can avoid the unwrap() and make this more efficient by
|
||||||
|
// converting straight from bytes.
|
||||||
|
hex_util::to_reverse_hex(&self.hex()).unwrap()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(ContentHash, Debug, PartialEq, Eq, Clone, Copy, PartialOrd, Ord)]
|
#[derive(ContentHash, Debug, PartialEq, Eq, Clone, Copy, PartialOrd, Ord)]
|
||||||
pub struct MillisSinceEpoch(pub i64);
|
pub struct MillisSinceEpoch(pub i64);
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@ use jj_lib::git;
|
||||||
use jj_lib::git_backend::GitBackend;
|
use jj_lib::git_backend::GitBackend;
|
||||||
use jj_lib::graph::GraphEdge;
|
use jj_lib::graph::GraphEdge;
|
||||||
use jj_lib::graph::ReverseGraphIterator;
|
use jj_lib::graph::ReverseGraphIterator;
|
||||||
use jj_lib::hex_util::to_reverse_hex;
|
|
||||||
use jj_lib::id_prefix::IdPrefixContext;
|
use jj_lib::id_prefix::IdPrefixContext;
|
||||||
use jj_lib::object_id::ObjectId;
|
use jj_lib::object_id::ObjectId;
|
||||||
use jj_lib::op_store::RefTarget;
|
use jj_lib::op_store::RefTarget;
|
||||||
|
@ -403,7 +402,7 @@ fn test_resolve_symbol_in_different_disambiguation_context() {
|
||||||
.with_id_prefix_context(&id_prefix_context);
|
.with_id_prefix_context(&id_prefix_context);
|
||||||
|
|
||||||
// Sanity check
|
// Sanity check
|
||||||
let change_hex = &to_reverse_hex(&commit2.change_id().hex()).unwrap();
|
let change_hex = commit2.change_id().reverse_hex();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
symbol_resolver
|
symbol_resolver
|
||||||
.resolve_symbol(repo2.as_ref(), &change_hex[0..1])
|
.resolve_symbol(repo2.as_ref(), &change_hex[0..1])
|
||||||
|
|
Loading…
Reference in a new issue