11class GitBranchless < Formula
22 desc "High-velocity, monorepo-scale workflow for Git"
33 homepage "https://github.com/arxanas/git-branchless"
4- url "https://github.com/arxanas/git-branchless/archive/refs/tags/v0.10.0.tar.gz"
5- sha256 "1eb8dbb85839c5b0d333e8c3f9011c3f725e0244bb92f4db918fce9d69851ff7"
64 license any_of : [ "Apache-2.0" , "MIT" ]
7- revision 1
5+ revision 2
86 head "https://github.com/arxanas/git-branchless.git" , branch : "master"
97
8+ stable do
9+ url "https://github.com/arxanas/git-branchless/archive/refs/tags/v0.10.0.tar.gz"
10+ sha256 "1eb8dbb85839c5b0d333e8c3f9011c3f725e0244bb92f4db918fce9d69851ff7"
11+
12+ # patch to use libgit2 1.9, upstream pr ref, https://github.com/arxanas/git-branchless/pull/1485
13+ patch :DATA
14+ end
15+
1016 # Upstream appears to use GitHub releases to indicate that a version is
1117 # released (and some tagged versions don't end up as a release), so it's
1218 # necessary to check release versions instead of tags.
@@ -16,17 +22,17 @@ class GitBranchless < Formula
1622 end
1723
1824 bottle do
19- sha256 cellar : :any , arm64_sequoia : "ca739d76b3d52de81f0ec9e679aba6847426b0c4d9c84b8db0c934ad576dc439 "
20- sha256 cellar : :any , arm64_sonoma : "993e9b56d4598738d7c5fd6fb6b90393396cd59a3bfb630294c7709a6507b04b "
21- sha256 cellar : :any , arm64_ventura : "a1e2afd8baea79531f7774ec70cc2230c945edde309036d0fb0aa5a9809b87fa "
22- sha256 cellar : :any , sonoma : "4ca5e3cd013c7556f3b32d06cac5186e3bdf369afdc2fe92c81ef52e08f631ff "
23- sha256 cellar : :any , ventura : "c72f47a4f49662451cd7154370b69240f75ceb7db7f33b90bc0e8532f39dd5c2 "
24- sha256 cellar : :any_skip_relocation , x86_64_linux : "6c6f31ef2352a3bbcc8e2478b7edfcf91df250d22084ade647a3fb187ace0f32 "
25+ sha256 cellar : :any , arm64_sequoia : "3efab33fd1452f9b179eb701f2f0b3ad59b836245d6466172a5ce5bacd54bb78 "
26+ sha256 cellar : :any , arm64_sonoma : "f3713da56ed61e4ba98216df90e57bde5dba088d9d54cc48b396e42bda4e87b7 "
27+ sha256 cellar : :any , arm64_ventura : "916640be323bdacc4fd0ad5ed2803cb1a4584d52ada450ae97b26b400c9abde6 "
28+ sha256 cellar : :any , sonoma : "17d8fa92649b7b75f85551251c4bdea543489247b14292b31f02696aea408222 "
29+ sha256 cellar : :any , ventura : "ae5923a733959106c2f4de98cf3c069d736af1f644991abb4355ab2bb72d12df "
30+ sha256 cellar : :any_skip_relocation , x86_64_linux : "246ff33a6a9007356ee52818e9ac3697cec0d8b8a173987870a9a0b7577b1b4a "
2531 end
2632
2733 depends_on "pkgconf" => :build
2834 depends_on "rust" => :build
29- depends_on "libgit2@1.8" # needs https://github.com/rust-lang/git2-rs/issues/1109 to support libgit2 1.9
35+ depends_on "libgit2"
3036
3137 def install
3238 ENV [ "LIBGIT2_NO_VENDOR" ] = "1"
@@ -50,9 +56,73 @@ def install
5056 linkage_with_libgit2 = ( bin /"git-branchless" ) . dynamically_linked_libraries . any? do |dll |
5157 next false unless dll . start_with? ( HOMEBREW_PREFIX . to_s )
5258
53- File . realpath ( dll ) == ( Formula [ "libgit2@1.8 " ] . opt_lib /shared_library ( "libgit2" ) ) . realpath . to_s
59+ File . realpath ( dll ) == ( Formula [ "libgit2" ] . opt_lib /shared_library ( "libgit2" ) ) . realpath . to_s
5460 end
5561
5662 assert linkage_with_libgit2 , "No linkage with libgit2! Cargo is likely using a vendored version."
5763 end
5864end
65+
66+ __END__
67+ diff --git a/Cargo.lock b/Cargo.lock
68+ index ecd3295..19168b5 100644
69+ --- a/Cargo.lock
70+ +++ b/Cargo.lock
71+ @@ -1756,9 +1756,9 @@ dependencies = [
72+
73+ [[package]]
74+ name = "git2"
75+ -version = "0.19.0"
76+ +version = "0.20.0"
77+ source = "registry+https://github.com/rust-lang/crates.io-index"
78+ -checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724"
79+ +checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff"
80+ dependencies = [
81+ "bitflags 2.5.0",
82+ "libc",
83+ @@ -2063,9 +2063,9 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
84+
85+ [[package]]
86+ name = "libgit2-sys"
87+ -version = "0.17.0+1.8.1"
88+ +version = "0.18.0+1.9.0"
89+ source = "registry+https://github.com/rust-lang/crates.io-index"
90+ -checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224"
91+ +checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec"
92+ dependencies = [
93+ "cc",
94+ "libc",
95+ diff --git a/Cargo.toml b/Cargo.toml
96+ index 1c806fa..fa0364a 100644
97+ --- a/Cargo.toml
98+ +++ b/Cargo.toml
99+ @@ -69,7 +69,7 @@ git-branchless-smartlog = { version = "0.10.0", path = "git-branchless-smartlog"
100+ git-branchless-submit = { version = "0.10.0", path = "git-branchless-submit" }
101+ git-branchless-test = { version = "0.10.0", path = "git-branchless-test" }
102+ git-branchless-undo = { version = "0.10.0", path = "git-branchless-undo" }
103+ -git2 = { version = "0.19.0", default-features = false }
104+ +git2 = { version = "0.20.0", default-features = false }
105+ glob = "0.3.0"
106+ indexmap = "2.2.6"
107+ indicatif = { version = "0.17.8", features = ["improved_unicode"] }
108+ diff --git a/git-branchless-invoke/src/lib.rs b/git-branchless-invoke/src/lib.rs
109+ index eee43ff..a6cd973 100644
110+ --- a/git-branchless-invoke/src/lib.rs
111+ +++ b/git-branchless-invoke/src/lib.rs
112+ @@ -117,12 +117,12 @@ fn install_tracing(effects: Effects) -> eyre::Result<impl Drop> {
113+
114+ #[instrument]
115+ fn install_libgit2_tracing() {
116+ - fn git_trace(level: git2::TraceLevel, msg: &str) {
117+ - info!("[{:?}]: {}", level, msg);
118+ + fn git_trace(level: git2::TraceLevel, msg: &[u8]) {
119+ + info!("[{:?}]: {}", level, String::from_utf8_lossy(msg));
120+ }
121+
122+ - if !git2::trace_set(git2::TraceLevel::Trace, git_trace) {
123+ - warn!("Failed to install libgit2 tracing");
124+ + if let Err(err) = git2::trace_set(git2::TraceLevel::Trace, git_trace) {
125+ + warn!("Failed to install libgit2 tracing: {err}");
126+ }
127+ }
128+
0 commit comments