Skip to content

Commit 7826ba4

Browse files
committed
remove gix dev-dependency. It's not really required.
1 parent 23034b0 commit 7826ba4

File tree

4 files changed

+64
-73
lines changed

4 files changed

+64
-73
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gix-config/tests/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ path = "mem.rs"
2323
[dev-dependencies]
2424
gix-config = { path = ".." }
2525
gix-testtools = { path = "../../tests/tools" }
26-
gix = { path = "../../gix", default-features = false }
2726
gix-ref = { path = "../../gix-ref" }
2827
gix-path = { path = "../../gix-path" }
2928
gix-sec = { path = "../../gix-sec" }

gix-config/tests/config/file/init/from_paths/includes/conditional/mod.rs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -137,18 +137,21 @@ fn options_with_git_dir(git_dir: &Path) -> init::Options<'_> {
137137
}
138138
}
139139

140-
fn git_init(path: impl AsRef<std::path::Path>, bare: bool) -> crate::Result<gix::Repository> {
141-
Ok(gix::ThreadSafeRepository::init_opts(
142-
path,
143-
if bare {
144-
gix::create::Kind::Bare
145-
} else {
146-
gix::create::Kind::WithWorktree
147-
},
148-
gix::create::Options::default(),
149-
gix::open::Options::isolated().config_overrides(["user.name=gitoxide", "user.email=gitoxide@localhost"]),
150-
)?
151-
.to_thread_local())
140+
fn git_init(dir: impl AsRef<std::path::Path>, bare: bool) -> crate::Result {
141+
let dir = dir.as_ref();
142+
let mut args = vec!["init"];
143+
if bare {
144+
args.push("--bare");
145+
}
146+
let output = std::process::Command::new(gix_path::env::exe_invocation())
147+
.args(args)
148+
.arg(dir)
149+
.env_remove("GIT_CONFIG_COUNT")
150+
.env_remove("XDG_CONFIG_HOME")
151+
.output()?;
152+
153+
assert!(output.status.success(), "{:?}, {:?}", output, dir);
154+
Ok(())
152155
}
153156

154157
fn create_symlink(from: impl AsRef<Path>, to: impl AsRef<Path>) {

gix-config/tests/config/file/init/from_paths/includes/conditional/onbranch.rs

Lines changed: 49 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ use gix_config::file::{
66
includes::conditional,
77
init::{self},
88
};
9-
use gix_ref::{
10-
transaction::{Change, PreviousValue, RefEdit},
11-
FullName, Target,
12-
};
9+
use gix_ref::FullName;
1310
use gix_testtools::tempfile::tempdir;
1411

1512
use crate::file::{cow_str, init::from_paths::includes::conditional::git_init};
@@ -24,7 +21,7 @@ fn literal_branch_names_match() -> Result {
2421
branch_name: "refs/heads/literal-match",
2522
expect: Value::OverrideByInclude,
2623
},
27-
GitEnv::new()?,
24+
&mut GitEnv::new()?,
2825
)?;
2926
Ok(())
3027
}
@@ -37,7 +34,7 @@ fn full_ref_names_do_not_match() -> Result {
3734
branch_name: "refs/heads/simple",
3835
expect: Value::Base,
3936
},
40-
GitEnv::new()?,
37+
&mut GitEnv::new()?,
4138
)?;
4239
Ok(())
4340
}
@@ -50,37 +47,37 @@ fn non_branches_never_match() -> Result {
5047
branch_name: "refs/bisect/good",
5148
expect: Value::Base,
5249
},
53-
GitEnv::new()?,
50+
&mut GitEnv::new()?,
5451
)?;
5552
Ok(())
5653
}
5754

5855
#[test]
5956
fn patterns_ending_with_slash_match_subdirectories_recursively() -> Result {
6057
let mut env = GitEnv::new()?;
61-
env = assert_section_value(
58+
assert_section_value(
6259
Options {
6360
condition: "feature/b/",
6461
branch_name: "refs/heads/feature/b/start",
6562
expect: Value::OverrideByInclude,
6663
},
67-
env,
64+
&mut env,
6865
)?;
69-
env = assert_section_value(
66+
assert_section_value(
7067
Options {
7168
condition: "feature/",
7269
branch_name: "refs/heads/feature/b/start",
7370
expect: Value::OverrideByInclude,
7471
},
75-
env,
72+
&mut env,
7673
)?;
7774
assert_section_value_msg(
7875
Options {
7976
condition: "feature/b/start",
8077
branch_name: "refs/heads/feature/b/start",
8178
expect: Value::OverrideByInclude,
8279
},
83-
env,
80+
&mut env,
8481
"just for good measure, we would expect branch paths to work as well".into(),
8582
)?;
8683
Ok(())
@@ -89,46 +86,46 @@ fn patterns_ending_with_slash_match_subdirectories_recursively() -> Result {
8986
#[test]
9087
fn simple_glob_patterns() -> Result {
9188
let mut env = GitEnv::new()?;
92-
env = assert_section_value(
89+
assert_section_value(
9390
Options {
9491
condition: "prefix*",
9592
branch_name: "refs/heads/prefixsuffix",
9693
expect: Value::OverrideByInclude,
9794
},
98-
env,
95+
&mut env,
9996
)?;
100-
env = assert_section_value_msg(
97+
assert_section_value_msg(
10198
Options {
10299
condition: "prefix*",
103100
branch_name: "refs/heads/prefix/suffix",
104101
expect: Value::Base,
105102
},
106-
env,
103+
&mut env,
107104
"single-stars do not cross component boundaries".into(),
108105
)?;
109-
env = assert_section_value(
106+
assert_section_value(
110107
Options {
111108
condition: "*suffix",
112109
branch_name: "refs/heads/prefixsuffix",
113110
expect: Value::OverrideByInclude,
114111
},
115-
env,
112+
&mut env,
116113
)?;
117-
env = assert_section_value(
114+
assert_section_value(
118115
Options {
119116
condition: "*/suffix",
120117
branch_name: "refs/heads/prefix/suffix",
121118
expect: Value::OverrideByInclude,
122119
},
123-
env,
120+
&mut env,
124121
)?;
125122
assert_section_value_msg(
126123
Options {
127124
condition: "*suffix",
128125
branch_name: "refs/heads/prefix/suffix",
129126
expect: Value::Base,
130127
},
131-
env,
128+
&mut env,
132129
"single-stars do not cross component boundaries".into(),
133130
)?;
134131
Ok(())
@@ -137,21 +134,21 @@ fn simple_glob_patterns() -> Result {
137134
#[test]
138135
fn simple_globs_do_not_cross_component_boundary() -> Result {
139136
let mut env = GitEnv::new()?;
140-
env = assert_section_value(
137+
assert_section_value(
141138
Options {
142139
condition: "feature/*/start",
143140
branch_name: "refs/heads/feature/a/start",
144141
expect: Value::OverrideByInclude,
145142
},
146-
env,
143+
&mut env,
147144
)?;
148145
assert_section_value_msg(
149146
Options {
150147
condition: "feature/*/start",
151148
branch_name: "refs/heads/feature/a/b/start",
152149
expect: Value::Base,
153150
},
154-
env,
151+
&mut env,
155152
"path matching would never match 'a/b' as it cannot cross /".into(),
156153
)?;
157154
Ok(())
@@ -165,7 +162,7 @@ fn double_star_globs_cross_component_boundaries() -> Result {
165162
branch_name: "refs/heads/feature/a/b/start",
166163
expect: Value::OverrideByInclude,
167164
},
168-
GitEnv::new()?,
165+
&mut GitEnv::new()?,
169166
)?;
170167
Ok(())
171168
}
@@ -177,15 +174,14 @@ enum Value {
177174

178175
#[derive(Debug)]
179176
struct GitEnv {
180-
repo: gix::Repository,
181177
dir: gix_testtools::tempfile::TempDir,
182178
}
183179

184180
impl GitEnv {
185181
fn new() -> crate::Result<Self> {
186182
let dir = tempdir()?;
187-
let repo = git_init(dir.path(), true)?;
188-
Ok(GitEnv { repo, dir })
183+
git_init(dir.path(), true)?;
184+
Ok(GitEnv { dir })
189185
}
190186
}
191187

@@ -195,7 +191,7 @@ struct Options<'a> {
195191
expect: Value,
196192
}
197193

198-
fn assert_section_value(opts: Options, env: GitEnv) -> crate::Result<GitEnv> {
194+
fn assert_section_value(opts: Options, env: &mut GitEnv) -> crate::Result {
199195
assert_section_value_msg(opts, env, None)
200196
}
201197

@@ -205,9 +201,9 @@ fn assert_section_value_msg(
205201
branch_name,
206202
expect,
207203
}: Options,
208-
GitEnv { repo, dir }: GitEnv,
204+
GitEnv { dir }: &mut GitEnv,
209205
message: Option<&str>,
210-
) -> crate::Result<GitEnv> {
206+
) -> crate::Result<()> {
211207
let root_config = dir.path().join("config");
212208
let included_config = dir.path().join("include.config");
213209

@@ -264,36 +260,23 @@ value = branch-override-by-include
264260
"the base value is overridden by an included file because the condition matches",
265261
},
266262
message,
267-
dir.into_path()
263+
{
264+
let dir = std::mem::replace(
265+
dir,
266+
gix_testtools::tempfile::TempDir::new().expect("substitute can be created"),
267+
);
268+
dir.into_path()
269+
}
268270
);
269271

270-
repo.refs
271-
.transaction()
272-
.prepare(
273-
Some(RefEdit {
274-
name: "HEAD".try_into()?,
275-
change: Change::Update {
276-
log: Default::default(),
277-
expected: PreviousValue::Any,
278-
new: Target::Symbolic(branch_name),
279-
},
280-
deref: false,
281-
}),
282-
gix::lock::acquire::Fail::Immediately,
283-
gix::lock::acquire::Fail::Immediately,
284-
)?
285-
.commit(repo.committer().transpose()?)?;
286-
287-
let dir = assure_git_agrees(expect, dir)?;
288-
Ok(GitEnv { repo, dir })
272+
std::fs::write(dir.path().join("HEAD"), format!("ref: {}", branch_name.as_bstr()))?;
273+
assure_git_agrees(expect, dir)?;
274+
Ok(())
289275
}
290276

291-
fn assure_git_agrees(
292-
expected: Value,
293-
dir: gix_testtools::tempfile::TempDir,
294-
) -> crate::Result<gix_testtools::tempfile::TempDir> {
277+
fn assure_git_agrees(expected: Value, dir: &mut gix_testtools::tempfile::TempDir) -> crate::Result {
295278
let git_dir = dir.path();
296-
let output = std::process::Command::new("git")
279+
let output = std::process::Command::new(gix_path::env::exe_invocation())
297280
.args(["config", "--get", "section.value"])
298281
.env("GIT_DIR", git_dir)
299282
.env("HOME", git_dir)
@@ -302,11 +285,18 @@ fn assure_git_agrees(
302285
.current_dir(git_dir)
303286
.output()?;
304287

288+
let mut keep_dir_on_disk = || {
289+
let dir = std::mem::replace(
290+
dir,
291+
gix_testtools::tempfile::TempDir::new().expect("substitute can be created"),
292+
);
293+
dir.into_path()
294+
};
305295
assert!(
306296
output.status.success(),
307297
"{:?}, {:?} for debugging",
308298
output,
309-
dir.into_path()
299+
keep_dir_on_disk()
310300
);
311301
let git_output: BString = output.stdout.trim_end().into();
312302
assert_eq!(
@@ -316,7 +306,7 @@ fn assure_git_agrees(
316306
Value::OverrideByInclude => "branch-override-by-include",
317307
},
318308
"git disagrees with gix-config, {:?} for debugging",
319-
dir.into_path()
309+
keep_dir_on_disk()
320310
);
321-
Ok(dir)
311+
Ok(())
322312
}

0 commit comments

Comments
 (0)