Skip to content

Commit

Permalink
Merge pull request #12333 from NixOS/mergify/bp/2.25-maintenance/pr-1…
Browse files Browse the repository at this point in the history
…2331

GitRepo::fetch(): Ignore $GIT_DIR (backport #12331)
  • Loading branch information
edolstra authored Jan 22, 2025
2 parents 5d2f26e + e64fcf6 commit 636c9cf
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 deletions.
14 changes: 6 additions & 8 deletions src/libfetchers/git-utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,8 @@ static git_packbuilder_progress PACKBUILDER_PROGRESS_CHECK_INTERRUPT = &packBuil

} // extern "C"

static void initRepoAtomically(std::filesystem::path &path, bool bare) {
static void initRepoAtomically(std::filesystem::path &path, bool bare)
{
if (pathExists(path.string())) return;

Path tmpDir = createTempDir(os_string_to_string(PathViewNG { std::filesystem::path(path).parent_path() }));
Expand Down Expand Up @@ -538,13 +539,10 @@ struct GitRepoImpl : GitRepo, std::enable_shared_from_this<GitRepoImpl>
// then use code that was removed in this commit (see blame)

auto dir = this->path;
Strings gitArgs;
if (shallow) {
gitArgs = { "-C", dir.string(), "fetch", "--quiet", "--force", "--depth", "1", "--", url, refspec };
}
else {
gitArgs = { "-C", dir.string(), "fetch", "--quiet", "--force", "--", url, refspec };
}
Strings gitArgs{"-C", dir.string(), "--git-dir", ".", "fetch", "--quiet", "--force"};
if (shallow)
append(gitArgs, {"--depth", "1"});
append(gitArgs, {std::string("--"), url, refspec});

runProgram(RunOptions {
.program = "git",
Expand Down
11 changes: 11 additions & 0 deletions src/libutil/util.hh
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,17 @@ std::optional<typename T::value_type> pop(T & c)
}


/**
* Append items to a container. TODO: remove this once we can use
* C++23's `append_range()`.
*/
template<class C, typename T>
void append(C & c, std::initializer_list<T> l)
{
c.insert(c.end(), l.begin(), l.end());
}


template<typename T>
class Callback;

Expand Down
1 change: 1 addition & 0 deletions tests/functional/common/vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ unset XDG_DATA_HOME
unset XDG_CONFIG_HOME
unset XDG_CONFIG_DIRS
unset XDG_CACHE_HOME
unset GIT_DIR

export IMPURE_VAR1=foo
export IMPURE_VAR2=bar
Expand Down

0 comments on commit 636c9cf

Please sign in to comment.