Struct git2::Submodule
[−]
[src]
pub struct Submodule<'repo> { // some fields omitted }
A structure to represent a git submodule
Methods
impl<'repo> Submodule<'repo>
fn branch(&self) -> Option<&str>
Get the submodule's branch.
Returns None
if the branch is not valid utf-8 or if the branch is not
yet available.
fn branch_bytes(&self) -> Option<&[u8]>
Get the branch for the submodule.
Returns None
if the branch is not yet available.
fn url(&self) -> Option<&str>
Get the submodule's url.
Returns None
if the url is not valid utf-8
fn url_bytes(&self) -> &[u8]
Get the url for the submodule.
fn name(&self) -> Option<&str>
Get the submodule's name.
Returns None
if the name is not valid utf-8
fn name_bytes(&self) -> &[u8]
Get the name for the submodule.
fn path(&self) -> &Path
Get the path for the submodule.
fn head_id(&self) -> Option<Oid>
Get the OID for the submodule in the current HEAD tree.
fn index_id(&self) -> Option<Oid>
Get the OID for the submodule in the index.
fn workdir_id(&self) -> Option<Oid>
Get the OID for the submodule in the current working directory.
This returns the OID that corresponds to looking up 'HEAD' in the checked out submodule. If there are pending changes in the index or anything else, this won't notice that.
fn init(&mut self, overwrite: bool) -> Result<(), Error>
Copy submodule info into ".git/config" file.
Just like "git submodule init", this copies information about the submodule into ".git/config". You can use the accessor functions above to alter the in-memory git_submodule object and control what is written to the config, overriding what is in .gitmodules.
By default, existing entries will not be overwritten, but passing true
for overwrite
forces them to be updated.
fn open(&self) -> Result<Repository, Error>
Open the repository for a submodule.
This will only work if the submodule is checked out into the working directory.
fn reload(&mut self, force: bool) -> Result<(), Error>
Reread submodule info from config, index, and HEAD.
Call this to reread cached submodule information for this submodule if you have reason to believe that it has changed.
If force
is true
, then data will be reloaded even if it doesn't seem
out of date
fn sync(&mut self) -> Result<(), Error>
Copy submodule remote info into submodule repo.
This copies the information about the submodules URL into the checked out submodule config, acting like "git submodule sync". This is useful if you have altered the URL for the submodule (or it has been altered by a fetch of upstream changes) and you need to update your local repo.
fn add_to_index(&mut self, write_index: bool) -> Result<(), Error>
Add current submodule HEAD commit to index of superproject.
If write_index
is true, then the index file will be immediately
written. Otherwise you must explicitly call write()
on an Index
later on.
fn add_finalize(&mut self) -> Result<(), Error>
Resolve the setup of a new git submodule.
This should be called on a submodule once you have called add setup and done the clone of the submodule. This adds the .gitmodules file and the newly cloned submodule to the index to be ready to be committed (but doesn't actually do the commit).