src


Log

Author Commit Date CI Message
Vicent Marti 545a6915 2011-03-05T13:45:05 Change interface for Tree Index attr (always unsigned) Signed-off-by: Vicent Marti <tanoku@gmail.com>
Sakari Jokinen 9de27ad0 2011-02-25T19:05:29 Check for valid range of attributes for tree entry
Vicent Marti 3490188b 2011-03-05T13:29:50 Change the return type of `git_blob_rawcontent` Should return `void *` for raw bytes. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti e0011be3 2011-03-05T13:22:16 Fix the opening of empty repositories We were checking for the index file, which is not assured to exist on clean git repositories. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti f335b42c 2011-03-05T01:17:59 Fix segmentation fault when freeing a repository Disable garbage collection of cross-references to prevent double-freeing. Internal reference management is now done with a separate method. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti e06dd9b6 2011-03-04T15:23:52 Fix 'possibly uninitialized variable' warning
Vicent Marti f7fcb0dd 2011-03-04T15:10:16 Don't use non-int bit fields They are not standard. MSVC complains about them. And that's not good. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 3c41c635 2011-03-03T21:58:37 Fix compilation in MSVC MSVC cannot substract void pointers. Go figure. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 71d33382 2011-03-03T20:20:45 Move the external includes folder from `src` to `include` Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 584f49a5 2011-03-01T01:37:28 Fix several issues with refcounting - Added several missing reference increases - Add new destructor to the repository that does not GC the objects Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 86d7e1ca 2011-02-28T12:46:13 Fix searching in git_vector We now store only one sorting callback that does entry comparison. This is used when sorting the entries using a quicksort, and when looking for a specific entry with the new search methods. The following search methods now exist: git_vector_search(vector, entry) git_vector_search2(vector, custom_search_callback, key) git_vector_bsearch(vector, entry) git_vector_bsearch2(vector, custom_search_callback, key) The sorting state of the vector is now stored internally. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 5de079b8 2011-02-28T12:12:26 Change the object creation/lookup API The methods previously known as git_repository_lookup git_repository_newobject git_repository_lookup_ref are now part of their respective namespaces: git_object_lookup git_object_new git_reference_lookup This makes the API more consistent with the new references API. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 5ad0351d 2011-03-03T19:58:07 Fix reference removal: remove packed refs together with loose ones
nulltoken 8f90ced5 2011-03-03T19:55:48 Fix corner case in reference renaming Renaming a packed reference should not pack another reference which happens to be in both loose and pack state.
Vicent Marti 971c90be 2011-02-28T16:54:13 Do not free the index if it's owned by a repository Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 48c27f86 2011-02-28T16:51:17 Implement reference counting for git_objects All `git_object` instances looked up from the repository are reference counted. User is expected to use the new `git_object_close` when an object is no longer needed to force freeing it. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 0594e3ef 2011-03-03T19:36:54 Prevent _dirent_loose_load() from choking on empty folders
Vicent Marti 19a30a3f 2011-03-03T19:53:17 Add new move function, `gitfo_mv_force` Forces a move by creating the folder for the destination file, if it doesn't exist. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 129007b4 2011-03-03T19:43:11 Fix refs renaming to prevent renaming with an invalid name
nulltoken e2d42622 2011-03-03T19:41:27 Fix reference renaming to prevent duplicated names
nulltoken 76f7cf70 2011-03-03T19:38:54 Fix reference renaming implementation to match standard git behavior
nulltoken 669db21b 2011-02-28T22:21:18 Slightly changed the behavior of git__joinpath() and git__joinpath_n().
nulltoken d2d6912e 2011-02-26T13:56:16 Refactored the opening and the initialization of a repository.
Vicent Marti 87d3acf4 2011-02-27T22:31:43 Finish the References API The following methods have been implemented: git_reference_packall git_reference_rename git_reference_delete The library now has full support for packed references, including partial and total writing. Internal documentation has been updated with the details. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 17cdf252 2011-02-27T22:31:06 Make some Object methods take a const parameter Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 2e60b652 2011-02-27T22:30:28 Add extra methods to the new Hashtable implementation Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti ccef1c9d 2011-02-27T22:09:36 Move the path comparison method to fileops.c Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti da7c3c71 2011-02-27T22:07:39 Fix warnings in vector.c Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 86194b24 2011-02-18T21:57:53 Split packed from unpacked references These two reference types are now stored separately to eventually allow the removal/renaming of loose references and rewriting of the refs packfile. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 32054c24 2011-02-18T18:09:19 Brush up the refs API Changed some more API details and updated documentation. Sketched API for addition/removal of entries. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 1d8cc731 2011-02-14T22:29:22 Refactored the reference creation API.
nulltoken e1be1028 2011-02-13T20:18:35 Added some more tests to ensure the correct behavior of git_reference__normalize_name().
nulltoken 6a0895ad 2011-02-11T13:58:40 Added GIT_EINVALIDREFSTATE error.
nulltoken aa2120e9 2011-02-10T15:08:00 Added git_reference__normalize_name() along with tests.
Vicent Marti 5cfd9ce4 2011-03-01T22:15:20 Add missing include to odb_backends.h Signed-off-by: Vicent Marti <tanoku@gmail.com>
Sakari Jokinen fc70832a 2011-02-23T07:08:50 include "oid.h" in headers that use git_oid This makes generating bindings to hlibgit2 easier
Vicent Marti 7360122b 2011-02-24T23:53:40 Fix file renaming in MinGW We now use MoveFileEx, which is not assured to be atomic but works for always (both if the destination exists, or if it doesn't) and is available in MinGW. Since this is a Win32 API call, complaint about lost or overwritten files should be forwarded at Steve Ballmer. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 3eb47c9f 2011-02-24T21:43:08 Fix renaming of files in Win32 The `rename` call doesn't quite work on Win32: expects the destination file to not exist. We're using a native Win32 call in those cases -- that should do the trick. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti c3be1468 2011-02-24T19:31:12 Fix double-freeing file descriptors Was crashing the Windows build. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti fc658755 2011-02-22T21:59:36 Rewrite git_hashtable internals The old hash table with chained buckets has been replaced by a new one using Cuckoo hashing, which offers guaranteed constant lookup times. This should improve speeds on most use cases, since hash tables in libgit2 are usually used as caches where the objects are stored once and queried several times. The Cuckoo hash implementation is based off the one in the Basekit library [1] for the IO language, but rewritten to support an arbritrary number of hashes. We currently use 3 to maximize the usage of the nodes pool. [1]: https://github.com/stevedekorte/basekit/blob/master/source/CHash.c Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 5591ea15 2011-02-22T14:58:54 Add printf method to the File Buffer Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 817c2820 2011-02-21T17:05:16 Rewrite all file IO for more performance The new `git_filebuf` structure provides atomic high-performance writes to disk by using a write cache, and optionally a double-buffered scheme through a worker thread (not enabled yet). Writes can be done 3-layered, like in git.git (user code -> write cache -> disk), or 2-layered, by writing directly on the cache. This makes index writing considerably faster. The `git_filebuf` structure contains all the old functionality of `git_filelock` for atomic file writes and reads. The `git_filelock` structure has been removed. Additionally, the `git_filebuf` API allows to automatically hash (SHA1) all the data as it is written to disk (hashing is done smartly on big chunks to improve performance). Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 874c3b6f 2011-02-18T14:11:53 Fix repository initialization Fixed several issues with path joining and bare repos. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti cb77ad0d 2011-02-18T12:23:53 Fix segfault when iterating a revlist backwards The `prev` and `next` pointers were not being updated after popping one of the list elements. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti e822508a 2011-02-18T10:29:55 Disable threaded index writing by default The interlocking on the write threads was not being done properly (index entries were sometimes written out of order). With proper interlocking, the threaded write is only marginally faster on big index files, and slower on the smaller ones because of the overhead when creating threads. The threaded index writing has been temporarily disabled; after more accurate benchmarks, if might be possible to enable it again only when writing very large index files (> 1000 entries). Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 3ecc8b5e 2011-02-18T00:08:34 Fix refcounting initialization Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 084c1935 2011-02-17T23:32:22 Fix type truncation in index entries 64-bit types stored in memory have to be truncated into 32 bits when writing to disk. Was causing warnings in MSVC. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 348c7335 2011-02-17T21:32:00 Improve the performance when writing Index files In response to issue #60 (git_index_write really slow), the write_index function has been rewritten to improve its performance -- it should now be in par with the performance of git.git. On top of that, if Posix Threads are available when compiling libgit2, a new threaded writing system will be used (3 separate threads take care of solving byte-endianness, hashing the contents of the index and writing to disk, respectively). For very long Index files, this method is up to 3x times faster than git.git. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Tim Clem 81d0ff1c 2011-02-14T13:22:44 fix cast in tag.h git_tag_lookup() and git_tag_new() changed to cast GIT_OBJ_TAG to git_otype in order to compile lib in xcode
Vicent Marti d4b5a4e2 2011-02-09T19:49:02 Internal changes on the backend system The priority value for different backends has been removed from the public `git_odb_backend` struct. We handle that internally. The priority value is specified on the `git_odb_add_alternate`. This is convenient because it allows us to poll a backend twice with different priorities without having to instantiate it twice. We also differentiate between main backends and alternates; alternates have lower priority and cannot be written to. These changes come with some unit tests to make sure that the backend sorting is consistent. The libgit2 version has been bumped to 0.4.0. This commit changes the external API: CHANGED: struct git_odb_backend No longer has a `priority` attribute; priority for the backend in managed internally by the library. git_odb_add_backend(git_odb *odb, git_odb_backend *backend, int priority) Now takes an additional priority parameter, the priority that will be given to the backend. ADDED: git_odb_add_alternate(git_odb *odb, git_odb_backend *backend, int priority) Add a backend as an alternate. Alternate backends have always lower priority than main backends, and writing is disabled on them. Signed-off-by: Vicent Marti <tanoku@gmail.com> Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 5a800efc 2011-02-09T12:46:54 Honor alternate entries in the ODB The alternates file is now parsed, and the alternate ODB folders are added as separate backends. This allows the library to efficiently query the alternate folders. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 995f9c34 2011-02-09T12:43:19 Use the new git__joinpath to build paths in methods The `git__joinpath` function has been changed to use a statically allocated buffer; we assume the buffer to be 4096 bytes, because fuck you. The new method also supports an arbritrary number of paths to join, which may come in handy in the future. Some methods which were manually joining paths with `strcpy` now use the new function, namely those in `index.c` and `refs.c`. Based on Emeric Fermas' original patch, which was using the old `git__joinpath` because I'm stupid. Thanks! Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 122c3405 2011-02-07T18:25:42 Git trees are now always lazily sorted Removed `git_tree_add_entry_unsorted`. Now the `git_tree_add_entry` method doesn't sort the entries array by default; entries are only sorted lazily when required. This is done automatically by the library (the `git_tree_sort_entries` call has been removed). This should improve performance. No point on sorting entries all the time, anyway. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 8212e2d7 2011-02-07T18:25:23 Fix detection of working dir on repositories Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 9d1dcca2 2011-02-07T10:35:58 Add proper version management We now have proper sonames in Mac OS X and Linux, proper versioning on the pkg-config file and proper DLL naming in Windows. The version of the library is defined exclusively in 'src/git2.h'; the build scripts read it from there automatically. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti becff042 2011-02-07T08:09:11 Fix compilation in MSVC The git_odb_backend_* symbols were being redefined as external. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti e85c705f 2011-02-07T08:04:04 Merge branch 'join-path-tests' of https://github.com/nulltoken/libgit2
Vicent Marti 13317a5e 2011-02-07T08:03:06 Merge branch 'chobie_git_dir_fix' of https://github.com/chobie/libgit2
John Wiegley e769e025 2011-02-07T00:11:17 Git does not like zero padded file attributes (git fsck)
John Wiegley 5bf42916 2011-02-07T00:11:00 Further correction to tree entry sorting (for git fsck)
Shuhei Tanuma 56ab8c54 2011-02-06T15:48:52 fix can't detect repository index issues.
nulltoken a79e8e63 2011-02-05T19:22:44 Fixed a small issue in git__join_path(). Added tests to exercise git__join_path().
Vicent Marti fb8dd803 2011-02-05T19:49:42 Merge branch 'sqlite-backend'
Vicent Marti c041af95 2011-02-05T19:45:57 Add support for SQLite backends Configure again the build system to look for SQLite3. If the library is found, the SQLite backend will be automatically compiled. Enjoy *very* fast reads and writes. MASTER PROTIP: Initialize the backend with ":memory" as the path to the SQLite database for fully-hosted in-memory repositories. Rejoice. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 95901128 2011-02-05T18:17:01 Move data from t03 to a separate header Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 40be9ae0 2011-02-05T15:03:48 Fixes a Win32/MSVC compilation issue.
Vicent Marti 412b3887 2011-02-05T13:12:02 Add new utility method `git__joinpath` Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti f725931b 2011-02-05T12:42:41 Fix directory/path manipulation methods The `dirname` and `dirbase` methods have been replaced with the Android implementation, which is actually compilant to some kind of standard. A new method `topdir` has been added, which returns the topmost directory in a path. These changes fix issue #49: `gitfo_prettify_dir_path` converts "./.git/" to ".git/", so the code at src/repository.c:190 goes out of bounds when trying to find the topmost directory. The new `git__topdir` method handles this gracefully, and the fixed `git__dirname` now returns the proper value for the repository's working dir. E.g. /repo/.git/ ==> working dir '/repo/' .git/ ==> working dir '.' Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti c836c332 2011-02-05T09:29:37 Make more methods return error codes git_revwalk_next now returns an error code when the iteration is over. git_repository_index now returns an error code when the index file could not be opened. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 4569bfa5 2011-02-05T09:11:17 Keep the tree entries always internally sorted Don't allow access to any tree entries whilst the entries array is unsorted. We keep track on when the array is unsorted, and any methods that access the array while it is unsorted now sort the array before accessing it. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 5d773a6e 2011-02-05T09:00:09 Merge branch 'master' of https://github.com/jwiegley/libgit2
John Wiegley 35786cb7 2011-02-02T19:00:26 Use Git's own tree entry sorting algorithm If plain strcmp is used, as this code did before, the final sorting may end up different from what git-add would do (for example, 'boost' appearing before 'boost-build.jam', because Git sorts as if it were spelled 'boost/'). If the sorting is incorrect like this, Git 1.7.4 insists that unmodified files have been modified. For example, my test repository has these four entries: drwxr-xr-x 199 johnw wheel 6766 Feb 2 17:21 boost -rw-r--r-- 1 johnw wheel 849 Feb 2 17:22 boost-build.jam -rw-r--r-- 1 johnw wheel 989 Feb 2 17:21 boost.css -rw-r--r-- 1 johnw wheel 6308 Feb 2 17:21 boost.png Here is the output from git-ls-tree for these files, in a commit tree created using git-add and git-commit: 100644 blob 8b8775433aef73e9e12609610ae2e35cf1e7ec2c boost-build.jam 100644 blob 986c4050fa96d825a1311c8e871cdcc9a3e0d2c3 boost.css 100644 blob b4d51fcd5c9149fd77f5ca6ed2b6b1b70e8fe24f boost.png 040000 tree 46537eeaa4d577010f19b1c9e940cae9a670ff5c boost Here is the output for the same commit produced using libgit2: 040000 tree c27c0fd1436f28a6ba99acd0a6c17d178ed58288 boost 100644 blob 8b8775433aef73e9e12609610ae2e35cf1e7ec2c boost-build.jam 100644 blob 986c4050fa96d825a1311c8e871cdcc9a3e0d2c3 boost.css 100644 blob b4d51fcd5c9149fd77f5ca6ed2b6b1b70e8fe24f boost.png Due to this reordering, git-status claims the three blobs are always modified, no matter what I do using git-read-tree or git-reset or git-checkout to update the index.
Vicent Marti ddc9e79a 2011-02-02T06:16:50 Fix more issues with Win32 EOL Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti ff5873ad 2011-02-02T04:01:14 Fix EOL issues in ref parsing under Win32 Reference files can be loaded using Win32 line endings, too. Signed-off-by: Vicent Marti <tanoku@gmail.com>
John Wiegley bf3389b9 2011-02-01T05:57:45 Fixed bug where git__source_printf needs multiple attempts
John Wiegley 9217bbda 2011-02-01T05:00:52 Fixed a bug with the way commits are written
John Wiegley 89f9fc6f 2011-01-28T02:41:59 Make git_tree_clear_entries visible to the user
John Wiegley 75e051c6 2011-01-27T14:20:23 Added git_tree_add_entry_unsorted and git_tree_sort_entries
Vicent Marti b70e4f8a 2011-02-01T03:21:53 Add required includes in "oid.h" The file was previously failing to be included stand-alone.
Vicent Marti 2f8a8ab2 2011-01-29T01:56:25 Refactor reference parsing code Several changes have been committed to allow the user to create in-memory references and write back to disk. Peeling of symbolic references has been made explicit. Added getter and setter methods for all attributes on a reference. Added corresponding documentation. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 9282e921 2010-12-27T20:34:19 Merge nulltoken's reference parsing code All the commits have been squashed into a single one before refactoring the final code, to keep everything tidy. Individual commit messages are as follows: Added repository reference looking up functionality placeholder. Added basic reference database definition and caching infrastructure. Removed useless constant. Added GIT_EINVALIDREFNAME error and description. Added missing description for GIT_EBAREINDEX. Added GIT_EREFCORRUPTED error and description. Added GIT_ETOONESTEDSYMREF error and description. Added resolving of direct and symbolic references. Prepared the packed-refs parsing. Added parsing of the packed-refs file content. When no loose reference has been found, the full content of the packed-refs file is parsed. All of the new (i.e. not previously parsed as a loose reference) references are eagerly stored in the cached references storage. The method packed_reference_file__parse() is in deer need of some refactoring. :-) Extracted to a method the parsing of the peeled target of a tag. Extracted to a method the parsing of a standard packed ref. Fixed leaky removal of the cached references. Ensured that a previously parsed packed reference isn't returned if a more up-to-date loose reference exists. Enhanced documentation of git_repository_reference_lookup(). Moved some refs related constants from repository.c to refs.h. Made parsing of a packed tag reference more robust. Updated git_repository_reference_lookup() documentation. Added some references to the test repository. Added some tests covering tag references looking up. Added some tests covering symbolic and head references looking up. Added some tests covering packed references looking up.
nulltoken f2c24713 2011-01-26T20:29:06 Made path prettifying functions return GIT_EINVALIDPATH instead of GIT_ERROR.
nulltoken 2e6fd09c 2011-01-25T21:52:24 Fixed naming convention related issue.
nulltoken eb2f3b47 2011-01-23T19:01:57 Made git_repository_open2() and git_repository_open3() benefit from recently added path prettifying function.
nulltoken 618818dc 2011-01-23T16:15:11 Added git_prettify_file_path().
nulltoken 4581c22a 2011-01-22T14:38:47 Optimized git_prettify_dir_path() parsing.
nulltoken 9dd34b1e 2011-01-21T14:02:22 Made git_repository_open() and git_repository_init() benefit from recently added path prettifying function.
nulltoken ae7ffea9 2011-01-22T14:04:32 Fixed a parsing issue in git_prettify_dir_path().
Vicent Marti b29e8f19 2011-01-29T02:12:59 Return the created entry in git_tree_add_entry() Yes, we are breaking the API. Alpha software, deal with it. We need a way of getting a pointer to each newly added entry to the index, because manually looking up the entry after creation is outrageously expensive. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 37c2d54c 2011-01-20T15:57:13 Fix compilation on MinGW Require <sys/types.h> to find the definition for off64_t. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti c8f5ff8f 2011-01-20T14:43:27 Fix initialization of in-memory trees In-memory tree objects were not being properly initialized, because the internal entries vector was created on the 'parse' method. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken e16c2f6a 2011-01-20T19:51:34 Small enhancements to git_prettify_dir_path(). - Secured buffer ahead reading. - Guard against potential multiple dot path traversal (cf http://cwe.mitre.org/data/definitions/33.html)
Vicent Marti b5e567b9 2011-01-19T17:15:02 Merge branch 'dir-path-prettifying' of https://github.com/nulltoken/libgit2
Vicent Marti ec3c7a16 2011-01-13T04:54:14 Add new Repository initialization method Lets the user specify the ODB that will be used by the repository manually. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti c5846fbf 2011-01-13T04:34:23 Fix typo on Commit API Proper function is 'git_commit_time_offset'. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti e52e38d3 2011-01-12T01:42:07 Move the compat definitions to types.h Don't need a brand new header for two typedefs when we already have a types.h header. Change comment style to ANSI C. Signed-off-by: Vicent Marti <tanoku@gmail.com>
nulltoken 170d3f2f 2011-01-11T20:12:53 Added git_prettify_dir_path(). Clean up a provided absolute or relative directory path. This prettification relies on basic operations such as coalescing multiple forward slashes into a single slash, removing '.' and './' current directory segments, and removing parent directory whenever '..' is encountered. If not empty, the returned path ends with a forward slash. For instance, this will turn "d1/s1///s2/..//../s3" into "d1/s3/". This only performs a string based analysis of the path. No checks are done to make sure the path actually makes sense from the file system perspective.
Alex Budovski f0bde7fa 2011-01-11T16:07:45 Revised platform types to use 'best supported' size. This will allow graceful migration to 64 bit file sizes and timestamps should git's binary interface be extended to allow this.
Alex Budovski e0c23b88 2011-01-11T17:50:37 Remove unused variable.
Alex Budovski 0a3bcad0 2011-01-10T14:57:06 Fix Windows build with forced bit truncation. Windows uses a 64 bit time_t by default and assigning to unsigned int causes a 64 -> 32 bit truncation warning. This change forces the truncation, acknowledging the implications detailed in the file comments. Also, blobs are limited to 32 bit file sizes for the same reason (on all platforms).