#![deny(warnings)]
use git2::{Direction, Repository};
use structopt::StructOpt;
#[derive(StructOpt)]
struct Args {
#[structopt(name = "remote")]
arg_remote: String,
}
fn run(args: &Args) -> Result<(), git2::Error> {
let repo = Repository::open(".")?;
let remote = &args.arg_remote;
let mut remote = repo
.find_remote(remote)
.or_else(|_| repo.remote_anonymous(remote))?;
let connection = remote.connect_auth(Direction::Fetch, None, None)?;
for head in connection.list()?.iter() {
println!("{}\t{}", head.oid(), head.name());
}
Ok(())
}
fn main() {
let args = Args::from_args();
match run(&args) {
Ok(()) => {}
Err(e) => println!("error: {}", e),
}
}