| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
being a special case of the commit method; includes tests
util: Fixed iterable lists, which broke due to an incorrectly implemented __contains__ method
|
|
|
|
| |
the ORIG_HEAD reference as well
|
|
|
|
|
|
| |
local cache - previously a procedural approach was used, which was less code, but slower too. Especially in case of CommitObjects unrolling the loop manually makes a difference.
Submodule: Implemented query methods and did a bit of testing. More is to come, but the test works for now. As special addition, the submodule implementation uses the section name as submodule ID even though it seems to be just the path. This allows to make renames easier
|
|
|
|
|
|
| |
instead of the existing and valid. The rest of the ConfigParser handling is correct, as it reads all configuration files available to git
see http://github.com/Byron/GitPython/issues#issue/1
|
|
|
|
| |
into the byte stream, as well as decoded from it
|
|
|
|
| |
written according to the encoding of the commit object, and decoded using that information as well. Trees will encode and decode their names with utf8
|
|
|
|
| |
the submodules's naming conventions
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
use 20 byte sha's internally as it is closer to the GitDB implementation
Switched all remaining files back to tabs
Adjusted all remaining docstrings to suit the sphinx doc convention - its likely that there are many of docstring syntax errors though
|
| |
|
|
|
|
| |
fast, while staying compatible with serialization which requires it to be sorted
|
|
|
|
|
|
| |
was added instead
Adjusted all imports to deal with the changed package names
|
|
|
|
| |
but next there will have to be more through testing
|
|
|
|
| |
multi-threading implementation of all odb functions
|
|
|
|
|
|
| |
parsing which truncated newlines although it was ilegitimate. Its up to the reader to truncate therse, nowhere in the git code I could find anyone adding newlines to commits where it is written
Added performance tests for serialization, it does about 5k commits per second if writing to tmpfs
|
|
|
|
|
|
| |
from their object information directly. This is faster, and resolves issues with the rev-list format and empty commit messages
Adjusted many tests to go with the changes, as they were still mocked. The mock was removed if necessary and replaced by code that actually executes
|
|
|
|
|
|
|
| |
performance is slightly better
git.cmd: added method to provide access to the content stream directly. This is more efficient if large objects are handled, if it is actually used
test.helpers: removed unnecessary code
|
|
|
|
| |
objects if it could serialize itself
|
|
|
|
|
|
|
|
| |
and absolute paths were given
Commit.create_from_tree: fixed critical bug that would cause it to create a branch named master by default, instead of the reference actually set ( which is master in many, but not all cases )
- in fact it could be detached as well, we would fail ungracefully although we could assume master then ... although we cant really make the decision
Repo.is_dirty: improved its abiility to deal with empty repositories and a missing head. Weird thing is that the test always worked fine with the previous code, but it didn't work for me in a similar situation without this change at least
|
|
|
|
|
|
|
| |
This commit includes
- an update to git.objects.utils:parse_actor_and_date to parse the timezone offset
- updates to the git.objects.Commit and git.objects.Tag objects to support *_tz_offset attributes
- updates to tests in test.git.test_commit and test.git.test_refs to check for appropriate *_tz_offset attributes
|
| |
|
|
|
|
|
|
| |
to paths anymore as it will only append '--' if paths are actually given.
Added unittest to verify this
|
| |
|
|
|
|
| |
non-natural when using it
|
|
|
|
| |
including a test
|
|
|
|
| |
using the current index. This makes it more flexible. For convenience, the index.commit method is still available, it delgates all the work
|
|
|
|
| |
appears git-rev-list uses empty paths in some way, which is quite hard to specify on a shell, but easy if the process is spawned directly
|
|
|
|
| |
as sha, even if the passed in id was a ref. This is done to assure objects are uniquely identified and will compare correctly
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* index:
index.add: Finished implemenation including through tests
When parsing trees, we now store the originan type bits as well, previously we dropped it
cmd.wait: AutoKill wrapped process will automatically raise on errors to unify error handling amongst clients using the process directly. It might be needed to add a flag allowing to easily override that
added head kwarg to reset and commit method, allowing to automatically change the head to the given commit, which makes the methods more versatile
refs.SymoblicRef: implemented direcft setting of the symbolic references commit, which possibly dereferences to the respective head
index.commit: implemented initial version, but in fact some more changes are required to have a nice API. Tests are not yet fully done either
actor: added __eq__, __ne__ and __hash__ methods including simple test
index.remove implemented including throrough test
Implemented index.reset method including test
IndexEntry is now based on a 'minimal' version that is suitable to be fed into UpdateIndex. The Inode and device information is only needed to quickly compare the index against the working tree for changes, hence it should not be that dominant in the API either. More changes to come
Added notes about git-update-ref
Refs can now set the reference they are pointing to in a controlled fashion by writing their ref file directly
Added TagRefernce creation and deletion including tests
Implemented head methods: create, delete, rename, including tests
refs: added create, delete and rename methods where appropriate. Tests are marked, implementation is needed for most of them
Added frame for IndexFile add/remove/commit methods and respective test markers
Added repo.index property including simple test, and additional ideas in the TODO list
Renamed Index to IndexFile, adjusted tests, it will only operate on physical files, not on streams, as Indices are not streamed by any git command ( at least not in raw format )
|
| |
| |
| |
| | |
commit: Fixed long-standing issue during message parsing that would fail to parse properly in case we were created from data. Also it would strip white space from the messages although it shouldn't
|
|/ |
|
|
|
|
| |
simple tests
|
|
|
|
|
| |
repo: added head , tag and iter_trees methods for completeness
changes: headlines now sorted chronologically
|
|
|
|
| |
diff module, which probably is the right thing to do anyway
|
|
|
|
| |
is missing - these tests have to be redone in test-diff module accordingly
|
|
|
|
| |
Diff class has been prepared to process raw input, but its not yet more than a frame
|
| |
|
|
|
|
|
| |
Renamed Commit.commits to iter_commits
repo: assured proper use of the terms revision ( rev ) and reference ( ref )
|
|
|
|
| |
obsolete once the interface overhaul is finished. This commit is just intermediate
|
|
|
|
|
|
| |
memory
time imports cleaned up and mostly removed as they were not required (anymore)
|
|
|
|
|
|
| |
cannot handle the complexity of the command backend
All objects but Tree now use the persistent command to read their object information - Trees get binary data and would need their own pretty-printing or they need to parse the data themselves which is my favorite
|
|
|
|
|
|
|
| |
currently it cause hundreds of command invocations which is slow
Fixed issue with trees not properly initialized with their default mode
_set_cache_: some objects checked whether the attribute was within their __slots__ although it should have been accessed through its class
|
|
|
|
|
|
|
| |
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 )
|
| |
|
|
|
|
| |
preparation for command changes
|
|
|
|
|
|
| |
to dynamically retrieve their objects
Improved way commits are returned by refs as they now use the path to be sure they always point to the ref even if it changes - previously it would use the sha intead so it would not update after being cached on the ref object
|
|
|
|
| |
_list_from_string to indicate their new status as private method, adjusted all callers respectively
|
|
|