aboutsummaryrefslogtreecommitdiff
path: root/lib/git/cmd.py
AgeCommit message (Collapse)Author
2010-05-27cmd: By default, on linux, the parent file handles will be closed to leave ↵Sebastian Thiel
the child less cluttered, and make it easier to debug as it will only have the file descriptors we set. It appears to be more stable regarding the stdin-is-closed-but-child-doesn't-realize-this issue
2010-05-12Repo: Added comparison operators and hash operator including testSebastian Thiel
Cmd: AutoInterrupt handles boundary cases more gracefully as it can be that the os module suddenly becomes None if the interpreter is going down
2010-03-04Converted all tabs to 4 space characters each to comply with pep8Sebastian Thiel
2009-12-16Added imports for standard locking file classes into the git moduleSebastian Thiel
2009-12-03repo: renamed directories to more descriptive identifiers and made them ↵Sebastian Thiel
safer to use in case of bare repositories
2009-12-03repo: fixed incorrect path handling thta could lead to issues if the ↵Sebastian Thiel
repository was initialized with a .git repository, although it was not bare actually
2009-11-26SymbolicReferences can now be at any path within the repository, there is no ↵Sebastian Thiel
restriction anymore. Added a test to assure the git commands can handle it
2009-11-05fixed test_repo to work on windowsSebastian Thiel
cmd: taskkill now pipes stderror to nul as well
2009-11-05cmd: added clear_cache method now used by test repo decorators to be sure ↵Sebastian Thiel
persistent commands are killed before trying to remove the directory. Unfortunately, it still claims someone has opened the file. handle.exe does not show anyone, so what is happening here ? Is it just a windows odity ? If nothing helps I could just keep the temp data, but lets do some more testing first
2009-11-05git cmd on windows now runs without the shell, see diff for explanationSebastian Thiel
2009-11-05Fixed windows TASKKILL so it actually does something *silently*Sebastian Thiel
2009-11-04Improved cmd error handling in case an invalid revision is specified for an ↵Sebastian Thiel
object repo.tree: improved to be less restricting
2009-10-26cmd.wait: AutoKill wrapped process will automatically raise on errors to ↵Sebastian Thiel
unify error handling amongst clients using the process directly. It might be needed to add a flag allowing to easily override that
2009-10-22git cmd fix: After removing the with_raw_output flag, I actually did the ↵Sebastian Thiel
wrong thing by _not_ stripping the final newline at the end of all git commands we use. This is the default now which cannot be changed - perhaps its wrong to remove it, but in way you'd always want the final newline stripped unless you get data directly, but there are better ways to do that ( blob.data, blob.data_stream, blob.stream_data )
2009-10-22Stream_data streams data to a given output stream most efficiently with a ↵Sebastian Thiel
low memory footprint. Still, the git-cat-file command keeps all data in an interal buffer instead of streaming it directly. This is a git design issue though, and will be hard to address without some proper git-hacking. Conflicts: lib/git/cmd.py
2009-10-22Git.cmd: removed with_raw_output optionSebastian Thiel
repo.archive: made it work with new way of custom output streams added test for repo.archive which was missing for some reason
2009-10-22added Object.data_stream property allowing to stream object data ↵Sebastian Thiel
directly.Considering the implementation of the git commnd which temporarily keeps it in a cache, it doesnt make a huge diffence as the data is kept in memory while streaming. Only good thing is that it is in a different process so python will never see it if done properly
2009-10-21remote: Added fetch, pull, push methods to the interface to make these ↵Sebastian Thiel
operations more convenient, like repo.remotes.origin.fetch
2009-10-20Moved specialized methods like dashify, touch and is_git_dir to module to ↵Sebastian Thiel
the respective modules that use them fixed repo.daemon_export which did not work anymore due to incorrect touch implementation and wrong property names
2009-10-15Improved archive function by allowing it to directly write to an output ↵Sebastian Thiel
stream - previously it would cache everything to memory and try to provide zipping functionality itself gitcmd: allows the output stream to be set explicitly which is mainly useful for archiving operations
2009-10-15repo: removed a few methods because of redundancy or because it will be ↵Sebastian Thiel
obsolete once the interface overhaul is finished. This commit is just intermediate
2009-10-14persistent command signature changed to also return the hexsha from a ↵Sebastian Thiel
possible input ref - the objects pointed to by refs are now baked on demand - perhaps it should change to always be re-retrieved using a property as it is relatively fast - this way refs can always be cached
2009-10-14Implemented git command facility to keep persistent commands for fast object ↵Sebastian Thiel
information retrieval
2009-10-14cmd: added option to return the process directly, allowing to read the ↵Sebastian Thiel
output directly from the output stream commit: now reads commit information directly from the output stream of the process by implementing its iterator method repo: removed log method as it was redundant ( equal to the commits method )
2009-10-11converted all spaces to tabs ( 4 spaces = 1 tab ) just to allow me and my ↵Sebastian Thiel
editor to work with the files properly. Can convert it back for releaes
2009-10-09finished cleaning usage of regular expressions - they are now precompiledSebastian Thiel
2009-10-08Merge branch 'doc_enhancements' into fixesSebastian Thiel
2009-10-08Added docs for the error moduleSebastian Thiel
2009-10-08improved git.cmd documentationSebastian Thiel
2009-10-08git.git.Git.__init__ takes None as default argument as the execute method ↵Sebastian Thiel
handles this correctly
2009-01-24Lots of spring cleaning and added in Sphinx documentation.Michael Trier
2008-08-11use shell=True in windows (git.exe needs to be on %PATH%)Florian Apolloner
One bug remaining: git on windows is returning status 0 for `git this-does-not-exist`, so no GitCommandError is raised.
2008-07-17Removed method_missing since it was only used in one place.Michael Trier
2008-07-16Added license information to all files.Michael Trier
2008-06-25fixed ↵Florian Apolloner
http://groups.google.com/group/git-python/browse_thread/thread/b8f3580abf31f9db?hl=en# and passed Git a working_tree again (sort of).
2008-06-21continued yesterdays work on the execute stuffFlorian Apolloner
2008-06-20made with_exceptions=True default (don't look before you leak ;)) and ↵Florian Apolloner
removed the combined output of stderr and stdout. Also renamed with_status to extended_output. The method_missing function needs to be modified, as it does a kwargs.pop(xxx, None); which resulted in with_excpetions=None -> False all the time... Test should follow tomorrow.
2008-06-15cmd: rename with_keep_cwd to keep_cwdDavid Aguilar
Having execute() use a different directory is an important piece of API information so I added more documentation about it and renamed the flag to just "keep_cwd" since that's shorter and simpler. Signed-off-by: David Aguilar <davvid@gmail.com>
2008-06-15Merge commit 'sverre/master' into davidDavid Aguilar
* commit 'sverre/master': Added a with_keep_cwd option Improved the GIT_PYTHON_TRACE=full output format Added /dist to .gitignore Conflicts: lib/git/cmd.py Signed-off-by: David Aguilar <davvid@gmail.com>
2008-06-15cmd: better support for bare repositoriesDavid Aguilar
In order to avoid the expense of parsing .git/config just to know whether or not a repository is bare at __init__ time, we just pass an optional flag to Git.__init__(): bare_repo with a default value of False. Repo.init_bare() was updated to pass this flag. We could have an optional Git.read_bare_status() function that does the expensive lookup. Then, users can optionally call it at runtime if they really need to know whether or not a repository is bare. That seems like a decent tradeoff between speed, correctness, and common use cases. Signed-off-by: David Aguilar <davvid@gmail.com>
2008-06-13Added a with_keep_cwd optionSverre Rabbelier
When executing commands, if the with_keep_cwd option is specified, the current working directory will be set to os.getcwd() instead of the directory containing the .git directory.
2008-06-13Improved the GIT_PYTHON_TRACE=full output formatSverre Rabbelier
It now also shows stderr if there was any on it, and only shows stdout if there was any output. Also added a '->' between the command and the return value as a visual clue.
2008-06-12cmd: properly handle cwd for repos with work treesDavid Aguilar
This is a fix on top of Govind's latest performance improvement. self._cwd was always set to self._git_dir which means a lot of commands that require work trees were not available to GitPython. Execute now uses self._cwd which is equal to self._git_dir by default, and self.get_work_tree() if a work tree exists. Signed-off-by: David Aguilar <davvid@gmail.com>
2008-06-12Determine git_dir and git_work_tree in python.Govind Salinas
Calling git to find the git_dir and work_tree is very costly. This patch uses the same mechanisim to find the git_dir as native git does without shelling out. Signed-off-by: Govind Salinas <blix@sophiasuchtig.com>
2008-06-11added support for GIT_PYTHON_TRACE=='full', thx to SRabbelier for the suggestionFlorian Apolloner
2008-06-01Git: guard against passing False to git commandsDavid Aguilar
git does not accept commands of the form: git cmd --xx=False or git cmd -xFalse This patch prevents transform_kwargs from producing command lines with those values. This adds some flexibility/syntactic sugar for callers since they can then assume that kwargs with a False value are not passed to git commands. Signed-off-by: David Aguilar <davvid@gmail.com>
2008-06-01style: follow PEP 8 in git/cmd.pyDavid Aguilar
Keyword args shouldn't use spaces around the equals sign per PEP 8. Signed-off-by: David Aguilar <davvid@gmail.com>
2008-06-01fixed ↵Florian Apolloner
http://gitorious.org/projects/git-python/repos/apollo13/comments#comment_105 my mistake ;) I'll investigate this further, but I think we are on the safe side now...
2008-06-01reverted to the cleaner and safer proc.wait method instead of communicate.Florian Apolloner
2008-05-31whoops forgot cmd.Michael Trier