{"push_id":1879071175,"size":135,"distinct_size":135,"ref":"refs/heads/master","head":"e0568621535869451c91e915d28a69ac7c84b8b7","before":"a1023a43027207ac7a5df7233bddfe7347bee256","commits":[{"sha":"78b8f0392cebb0d9e2c47b36f8d97ec53c1f0346","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"tests: fix indentation in checkout::head::with_index_only_tree","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/78b8f0392cebb0d9e2c47b36f8d97ec53c1f0346"},{"sha":"a7aa73a535a7f21357e9c7dece8376f30a29681f","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"worktree: introduce git_worktree_add options\n\nThe `git_worktree_add` function currently accepts only a path and name\nfor the new work tree. As we may want to expand these parameters in\nfuture versions without adding additional parameters to the function for\nevery option, this commit introduces our typical pattern of an options\nstruct. Right now, this structure is still empty, which will change with\nthe next commit.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/a7aa73a535a7f21357e9c7dece8376f30a29681f"},{"sha":"8264a30f4fbfce96f433f01fa6fe537e5cb3570d","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"worktree: support creating locked worktrees\n\nWhen creating a new worktree, we do have a potential race with us\ncreating the worktree and another process trying to delete the same\nworktree as it is being created. As such, the upstream git project has\nintroduced a flag `git worktree add --locked`, which will cause the\nnewly created worktree to be locked immediately after its creation. This\nmitigates the race condition.\n\nWe want to be able to mirror the same behavior. As such, a new flag\n`locked` is added to the options structure of `git_worktree_add` which\nallows the user to enable this behavior.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/8264a30f4fbfce96f433f01fa6fe537e5cb3570d"},{"sha":"883eeb5f909f230822c0bc025d3f9ce79781de04","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"worktree: switch over worktree pruning to an opts structure\n\nThe current signature of `git_worktree_prune` accepts a flags field to\nalter its behavior. This is not as flexible as we'd like it to be when\nwe want to enable passing additional options in the future. As the\nfunction has not been part of any release yet, we are still free to\nalter its current signature. This commit does so by using our usual\npattern of an options structure, which is easily extendable without\nbreaking the API.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/883eeb5f909f230822c0bc025d3f9ce79781de04"},{"sha":"e526fbc703af90a651a3aeb0b3147df45dd0d44a","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"tests: add test suite for opening submodules","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/e526fbc703af90a651a3aeb0b3147df45dd0d44a"},{"sha":"c3b8e8b3583b3767f8a0e124893083a15226afec","author":{"name":"Robert Gay","email":"a2bf42db032855ad4b72b71c1d3624aceaf9f9d6@gmail.com"},"message":"Fix issue with directory glob ignore in subdirectories","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/c3b8e8b3583b3767f8a0e124893083a15226afec"},{"sha":"cee1e7af1d979c26bb27a73f84cf53a8c860abdb","author":{"name":"Michael Tesch","email":"c964d831ef3a820ce9fdb56a81784dc2567a7921@microsoft.com"},"message":"merge: perform exact rename detection in linear time\nThe current exact rename detection has order n^2 complexity.\nWe can do better by using a map to first aggregate deletes and\nusing that to match deletes to adds.\n\nThis results in a substantial performance improvement for merges\nwith a large quantity of adds and deletes.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/cee1e7af1d979c26bb27a73f84cf53a8c860abdb"},{"sha":"57121a2377b695c4377e734f81f52abda97fc5b7","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"repository: clear out-parameter instead of freeing it\n\nThe `path` out-parameter of `find_repo` is being sanitized initially\nsuch that we do not try to append to existing content. The sanitization\nis done via `git_buf_free`, though, which forces us to needlessly\nreallocate the buffer later in the function. Fix this by using\n`git_buf_clear` instead.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/57121a2377b695c4377e734f81f52abda97fc5b7"},{"sha":"32841973f1ee4d6432206b333a9907f3d14a5307","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"repository: improve parameter names for `find_repo`\n\nThe out-parameters of `find_repo` containing found paths of a repository\nare a tad confusing, as they are not as obvious as they could be. Rename\nthem like following to ease reading the code:\n\n- `repo_path` -> `gitdir_path`\n- `parent_path` -> `workdir_path`\n- `link_path` -> `gitlink_path`\n- `common_path` -> `commondir_path`","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/32841973f1ee4d6432206b333a9907f3d14a5307"},{"sha":"9f9fd05f1cb9278a34a265c49c8567b526e48afd","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"repository: factor out worktree check\n\nThe check whether a repository is a worktree or not is currently done\ninside of `git_repository_open_ext`. As we want to extend this function\nlater on, pull it out into its own function `repo_is_worktree` to ease\nworking on it.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/9f9fd05f1cb9278a34a265c49c8567b526e48afd"},{"sha":"2696c5c3ece1a28c545d6e59b0d121480e9f977d","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"repository: make check if repo is a worktree more strict\n\nTo determine if a repository is a worktree or not, we currently check\nfor the existence of a \"gitdir\" file inside of the repository's gitdir.\nWhile this is sufficient for non-broken repositories, we have at least\none case of a subtly broken repository where there exists a gitdir file\ninside of a gitmodule. This will cause us to misidentify the submodule\nas a worktree.\n\nWhile this is not really a fault of ours, we can do better here by\nobserving that a repository can only ever be a worktree iff its common\ndirectory and dotgit directory are different. This allows us to make our\ncheck whether a repo is a worktree or not more strict by doing a simple\nstring comparison of these two directories. This will also allow us to\ndo the right thing in the above case of a broken repository, as for\nsubmodules these directories will be the same. At the same time, this\nallows us to skip the `stat` check for the \"gitdir\" file for most\nrepositories.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/2696c5c3ece1a28c545d6e59b0d121480e9f977d"},{"sha":"c0e541556600d825779c950ab1a4ce93b6782b09","author":{"name":"Chris Hescock","email":"51502ade20bda6d8a70882ebb790eb8bb6ea072f@vistaprint.com"},"message":"indexer: name pack files after trailer hash\n\nUpstream git.git has changed the way how packfiles are named.\nPreviously, they were using a hash of the contained object's OIDs, which\nhas then been changed to use the hash of the complete packfile instead.\nSee 1190a1acf (pack-objects: name pack files after trailer hash,\n2013-12-05) in the git.git repository for more information on this\nchange.\n\nThis commit changes our logic to match the behavior of core git.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/c0e541556600d825779c950ab1a4ce93b6782b09"},{"sha":"04de614b1f421d99240d049763546f2d06421248","author":{"name":"Edward Thomson","email":"f29eca94f40f9951b20ba47162df375f3575c58c@edwardthomson.com"},"message":"Merge pull request #4243 from pks-t/pks/submodule-workdir\n\nSubmodule working directory","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/04de614b1f421d99240d049763546f2d06421248"},{"sha":"82e929a88bc79dc5ebd9a8484a40319ac6768c9b","author":{"name":"Edward Thomson","email":"f29eca94f40f9951b20ba47162df375f3575c58c@edwardthomson.com"},"message":"Merge pull request #4239 from roblg/toplevel-dir-ignore-fix\n\nFix issue with directory glob ignore in subdirectories","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/82e929a88bc79dc5ebd9a8484a40319ac6768c9b"},{"sha":"f0848dd7e0d137939eb969af03bd75f9bf318286","author":{"name":"Edward Thomson","email":"f29eca94f40f9951b20ba47162df375f3575c58c@edwardthomson.com"},"message":"worktree: upgrade lock to an int","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/f0848dd7e0d137939eb969af03bd75f9bf318286"},{"sha":"dd0aa811dd329f5040c70f7aac514b3757eb2453","author":{"name":"Edward Thomson","email":"f29eca94f40f9951b20ba47162df375f3575c58c@edwardthomson.com"},"message":"Merge branch 'pr/4228'","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/dd0aa811dd329f5040c70f7aac514b3757eb2453"},{"sha":"8a5e7aaecf7ce48dfab805debfc92458ab1112c5","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"varint: fix computation for remaining buffer space\n\nWhen encoding varints to a buffer, we want to remain sure that the\nrequired buffer space does not exceed what is actually available. Our\ncurrent check does not do the right thing, though, in that it does not\nhonor that our `pos` variable counts the position down instead of up. As\nsuch, we will require too much memory for small varints and not enough\nmemory for big varints.\n\nFix the issue by correctly calculating the required size as\n`(sizeof(varint) - pos)`. Add a test which failed before.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/8a5e7aaecf7ce48dfab805debfc92458ab1112c5"},{"sha":"febe8c14a0cb3530f49a3990c1ff031d45d12ce6","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"index: fix confusion with shared prefix in compressed path names\n\nThe index version 4 introduced compressed path names for the entries.\nFrom the git.git index-format documentation:\n\n    At the beginning of an entry, an integer N in the variable width\n    encoding [...] is stored, followed by a NUL-terminated string S.\n    Removing N bytes from the end of the path name for the previous\n    entry, and replacing it with the string S yields the path name for\n    this entry.\n\nBut instead of stripping N bytes from the previous path's string and\nusing the remaining prefix, we were instead simply concatenating the\nprevious path with the current entry path, which is obviously wrong.\n\nFix the issue by correctly copying the first N bytes of the previous\nentry only and concatenating the result with our current entry's path.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/febe8c14a0cb3530f49a3990c1ff031d45d12ce6"},{"sha":"11d0be23c481f2df2e03e804c611a0f7d2be1599","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"index: set last entry when reading compressed entries\n\nTo calculate the path of a compressed index entry, we need to know the\npreceding entry's path. While we do actually set the first predecessor\ncorrectly to \"\", we fail to update this while reading the entries.\n\nFix the issue by updating `last` inside of the loop. Previously, we've\nbeen passing a double-pointer to `read_entry`, which it didn't update.\nAs it is more obvious to update the pointer inside the loop itself,\nthough, we can simply convert it to a normal pointer.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/11d0be23c481f2df2e03e804c611a0f7d2be1599"},{"sha":"8ceb890b77fc3ef1ab0fb4ef1d669366734cea85","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"index: set last written index entry in foreach-entry-loop\n\nThe last written disk entry is currently being written inside of the\nfunction `write_disk_entry`. Make behavior a bit more obviously by\ninstead setting it inside of `write_entries` while iterating all\nentries.","distinct":true,"url":"https://api.github.com/repos/BrendanLeber/libgit2/commits/8ceb890b77fc3ef1ab0fb4ef1d669366734cea85"}]}
{"actor":{"display_login":"BrendanLeber"}}