Skip to content

Commit 50fb46f

Browse files
authored
Merge pull request #2494 from GitoxideLabs/improvements
improvements
2 parents af1ad55 + 344218a commit 50fb46f

8 files changed

Lines changed: 40 additions & 18 deletions

File tree

gix-config/src/file/access/raw.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -647,11 +647,16 @@ impl<'event> File<'event> {
647647
/// ```
648648
pub fn set_raw_value<'b>(
649649
&mut self,
650-
key: &'event impl AsKey,
650+
key: impl AsKey,
651651
new_value: impl Into<&'b BStr>,
652652
) -> Result<Option<Cow<'event, BStr>>, crate::file::set_raw_value::Error> {
653653
let key = key.as_key();
654-
self.set_raw_value_by(key.section_name, key.subsection_name, key.value_name, new_value)
654+
self.set_raw_value_by(
655+
key.section_name,
656+
key.subsection_name,
657+
key.value_name.to_owned(),
658+
new_value,
659+
)
655660
}
656661

657662
/// Sets a value in a given `section_name`, optional `subsection_name`, and `value_name`.
@@ -699,12 +704,18 @@ impl<'event> File<'event> {
699704
/// `filter`, creating a new section otherwise.
700705
pub fn set_raw_value_filter<'b>(
701706
&mut self,
702-
key: &'event impl AsKey,
707+
key: impl AsKey,
703708
new_value: impl Into<&'b BStr>,
704709
filter: impl FnMut(&Metadata) -> bool,
705710
) -> Result<Option<Cow<'event, BStr>>, crate::file::set_raw_value::Error> {
706711
let key = key.as_key();
707-
self.set_raw_value_filter_by(key.section_name, key.subsection_name, key.value_name, new_value, filter)
712+
self.set_raw_value_filter_by(
713+
key.section_name,
714+
key.subsection_name,
715+
key.value_name.to_owned(),
716+
new_value,
717+
filter,
718+
)
708719
}
709720

710721
/// Similar to [`set_raw_value_by()`](Self::set_raw_value_by()), but only sets existing values in sections matching

gix-config/tests/config/file/access/raw/set_raw_value.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,14 @@ fn non_existing_values_cannot_be_set() -> crate::Result {
6565
);
6666
Ok(())
6767
}
68+
69+
#[test]
70+
fn accepts_short_lived_keys() -> crate::Result {
71+
let mut file = gix_config::File::default();
72+
let key = String::from("new.key");
73+
74+
file.set_raw_value(key.as_str(), "value")?;
75+
76+
assert_eq!(file.string("new.key").expect("present").as_ref(), "value");
77+
Ok(())
78+
}

gix/examples/init-repo-and-commit.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ fn main() -> anyhow::Result<()> {
2020
let empty_tree_id = repo.write_object(&tree)?.detach();
2121

2222
let mut config = repo.config_snapshot_mut();
23-
config.set_raw_value(&Author::NAME, "Maria Sanchez")?;
24-
config.set_raw_value(&Author::EMAIL, "maria@example.com")?;
23+
config.set_raw_value(Author::NAME, "Maria Sanchez")?;
24+
config.set_raw_value(Author::EMAIL, "maria@example.com")?;
2525
{
2626
let repo = config.commit_auto_rollback()?;
2727
let initial_commit_id = repo.commit("HEAD", "initial commit", empty_tree_id, gix::commit::NO_PARENT_IDS)?;

gix/src/repository/identity.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ impl crate::Repository {
5050
if self.committer().is_none() {
5151
let mut config = gix_config::File::new(gix_config::file::Metadata::api());
5252
config
53-
.set_raw_value(&gitoxide::Committer::NAME_FALLBACK, "no name configured")
53+
.set_raw_value(gitoxide::Committer::NAME_FALLBACK, "no name configured")
5454
.expect("works - statically known");
5555
config
56-
.set_raw_value(&gitoxide::Committer::EMAIL_FALLBACK, "noEmailAvailable@example.com")
56+
.set_raw_value(gitoxide::Committer::EMAIL_FALLBACK, "noEmailAvailable@example.com")
5757
.expect("works - statically known");
5858
let mut repo_config = self.config_snapshot_mut();
5959
repo_config.append(config);

gix/tests/gix/remote/fetch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ mod blocking_and_async_io {
635635
let (mut repo, _tmp) = repo_rw("two-origins");
636636
if let Some(version) = version {
637637
repo.config_snapshot_mut()
638-
.set_raw_value(&Protocol::VERSION, (version as u8).to_string().as_str())?;
638+
.set_raw_value(Protocol::VERSION, (version as u8).to_string().as_str())?;
639639
}
640640

641641
// No updates

gix/tests/gix/remote/ref_map.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ mod blocking_and_async_io {
5757
let mut repo = remote::repo("clone");
5858
if let Some(version) = version {
5959
repo.config_snapshot_mut()
60-
.set_raw_value(&Protocol::VERSION, (version as u8).to_string().as_str())?;
60+
.set_raw_value(Protocol::VERSION, (version as u8).to_string().as_str())?;
6161
}
6262

6363
let remote = into_daemon_remote_if_async(

gix/tests/gix/repository/config/config_snapshot/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ fn commit_auto_rollback() -> crate::Result {
1212

1313
{
1414
let mut config = repo.config_snapshot_mut();
15-
config.set_raw_value(&Core::ABBREV, "4")?;
15+
config.set_raw_value(Core::ABBREV, "4")?;
1616
let repo = config.commit_auto_rollback()?;
1717
assert_eq!(repo.head_id()?.shorten()?.to_string(), "3189");
1818
}
@@ -21,7 +21,7 @@ fn commit_auto_rollback() -> crate::Result {
2121

2222
let repo = {
2323
let mut config = repo.config_snapshot_mut();
24-
config.set_raw_value(&Core::ABBREV, "4")?;
24+
config.set_raw_value(Core::ABBREV, "4")?;
2525
let mut repo = config.commit_auto_rollback()?;
2626
assert_eq!(repo.head_id()?.shorten()?.to_string(), "3189");
2727
// access to the mutable repo underneath
@@ -39,7 +39,7 @@ mod trusted_path {
3939
#[test]
4040
fn optional_is_respected() -> crate::Result {
4141
let mut repo: gix::Repository = named_repo("make_basic_repo.sh")?;
42-
repo.config_snapshot_mut().set_raw_value(&"my.path", "does-not-exist")?;
42+
repo.config_snapshot_mut().set_raw_value("my.path", "does-not-exist")?;
4343

4444
let actual = repo
4545
.config_snapshot()
@@ -53,7 +53,7 @@ mod trusted_path {
5353
);
5454

5555
repo.config_snapshot_mut()
56-
.set_raw_value(&"my.path", ":(optional)does-not-exist")?;
56+
.set_raw_value("my.path", ":(optional)does-not-exist")?;
5757
let actual = repo.config_snapshot().trusted_path("my.path").transpose()?;
5858
assert_eq!(actual, None, "non-existing paths aren't returned to the caller");
5959
Ok(())
@@ -71,7 +71,7 @@ fn snapshot_mut_commit_and_forget() -> crate::Result {
7171
assert_eq!(repo.config_snapshot().integer("core.abbrev").expect("set"), 4);
7272
{
7373
let mut repo = repo.config_snapshot_mut();
74-
repo.set_raw_value(&Core::ABBREV, "8")?;
74+
repo.set_raw_value(Core::ABBREV, "8")?;
7575
repo.forget();
7676
}
7777
assert_eq!(repo.config_snapshot().integer("core.abbrev"), Some(4));
@@ -89,7 +89,7 @@ fn values_are_set_in_memory_only() {
8989

9090
{
9191
let mut config = repo.config_snapshot_mut();
92-
config.set_raw_value(&"hallo.welt", "true").unwrap();
92+
config.set_raw_value("hallo.welt", "true").unwrap();
9393
config
9494
.set_subsection_value(&Branch::MERGE, "main", "refs/heads/foo")
9595
.unwrap();
@@ -192,7 +192,7 @@ fn reload_reloads_on_disk_changes() -> crate::Result {
192192
fn reload_discards_in_memory_only_changes() -> crate::Result {
193193
let mut repo = named_repo("make_config_repo.sh")?;
194194

195-
repo.config_snapshot_mut().set_raw_value(&Core::ABBREV, "4")?;
195+
repo.config_snapshot_mut().set_raw_value(Core::ABBREV, "4")?;
196196
assert_eq!(repo.config_snapshot().integer("core.abbrev"), Some(4));
197197

198198
repo.reload()?;

src/plumbing/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ pub fn main() -> Result<()> {
125125
.boolean(gix::config::tree::Gitoxide::PARSE_PRECIOUS)
126126
.is_none()
127127
{
128-
config_mut.set_raw_value(&gix::config::tree::Gitoxide::PARSE_PRECIOUS, "true")?;
128+
config_mut.set_raw_value(gix::config::tree::Gitoxide::PARSE_PRECIOUS, "true")?;
129129
}
130130
}
131131
Ok(repo)

0 commit comments

Comments
 (0)