1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
//!
/// Internal
impl crate::Repository {
#[inline]
pub(crate) fn free_buf(&self) -> Vec<u8> {
self.bufs.borrow_mut().pop().unwrap_or_default()
}
/// This method is commonly called from the destructor of objects that previously claimed an entry
/// in the free-list with `free_buf()`.
/// They are welcome to take out the data themselves, for instance when the object is detached, to avoid
/// it to be reclaimed.
#[inline]
pub(crate) fn reuse_buffer(&self, data: &mut Vec<u8>) {
if data.capacity() > 0 {
self.bufs.borrow_mut().push(std::mem::take(data));
}
}
}
/// Everything else
impl crate::Repository {
// TODO: actual implementation
/// Return the committer as configured by this repository, which is determined by…
///
/// * …the git configuration…
/// * …the GIT_(AUTHOR|COMMITTER)_(NAME|EMAIL|DATE) environment variables…
///
/// …and in that order.
pub fn committer(&self) -> git_actor::Signature {
// TODO: actually do the work, probably that should be cached and be refreshable
git_actor::Signature::empty()
}
/// The kind of object hash the repository is configured to use.
pub fn object_hash(&self) -> git_hash::Kind {
self.config.object_hash
}
}
mod worktree;
/// Various permissions for parts of git repositories.
pub(crate) mod permissions;
mod init;
mod location;
mod snapshots;
mod state;
mod impls;
mod cache;
mod reference;
mod object;
mod thread_safe;
mod remote;