← Back to team overview

dulwich-users team mailing list archive

client.clone, repo.checkout and config core.filemode false

 

Hi,

1. There is no `client.clone(remote, local)` definition to clone a remote repository to a local disk, other than what's in bin/dulwich.py. (is there something already that does this somewhere else?) There is a repo.clone() def so I thought it might make sense to create a high level function that encapsulates what is in `cmd_clone()` in bin/dulwich.py already and also has the checkout function, `index.build_index_from_tree()` just like `repo.clone()` does. I can submit a patch if you think this is worthy.

2. I don't think `index.build_index_from_tree()` respect's the core.filemode config, which if set to false should not try to change file permissions.

3. I am trying to clone and work on repositories on a fuse filesystem with the following settings:
`rw, nosuid, nodev, relatime, user_id=XXXX, group_id=XXXX, default_permissions, allow_other 0 0`
and when I try to use `index.build_index_from_tree()` I get an exception and system says "Operation not permitted". I get this same error if I try to use chmod from a command line even if I do use su.

4. There is no `repo.checkout()` definition, although one could use index.build_index_from_tree as you suggest in issue #68 and as Charlies B's did in this SO answer [1].  I think it would be nice to have a `repo.checkout()` that does this since there is already the clone high level function. Or perhaps if you want to maintain dulwich as low-level, there could be a high level addon?


Thanks!
Mark

[1] http://stackoverflow.com/a/12465185/1020470
 
Thanks,
Mark Mikofski
poquitopicante.blogspot.com
breakingbytes.blogspot.com
www.breaking-bytes.com

Follow ups