├── .gitignore
├── .project
├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── README.md
├── build.rs
├── src
├── commit_diff_panel.rs
├── commit_diff_util.rs
├── commit_window.rs
├── diff_text_view_util.rs
├── gtk_utils.rs
├── history_window.rs
├── main.rs
├── railway.rs
├── repository_ext.rs
├── repository_manager.rs
├── resources
│ ├── commit_window.ui
│ ├── history_window.ui
│ ├── resources.gresource
│ └── resources.xml
├── static_resource.rs
├── station_cell_renderer.rs
├── station_renderer.rs
├── station_wrapper.rs
└── window_manager.rs
└── tests
├── railway_test.rs
├── repository_manager_test.rs
└── util
├── mod.rs
└── test_repo.rs
/.gitignore:
--------------------------------------------------------------------------------
1 | target
2 | *~
3 | /.idea/
4 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | rusttest
4 |
5 |
6 |
7 |
8 |
9 | com.github.rustdt.ide.core.Builder
10 | clean,full,incremental,
11 |
12 |
13 |
14 |
15 |
16 | com.github.rustdt.ide.core.nature
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | version = 3
4 |
5 | [[package]]
6 | name = "android_system_properties"
7 | version = "0.1.5"
8 | source = "registry+https://github.com/rust-lang/crates.io-index"
9 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
10 | dependencies = [
11 | "libc",
12 | ]
13 |
14 | [[package]]
15 | name = "anyhow"
16 | version = "1.0.66"
17 | source = "registry+https://github.com/rust-lang/crates.io-index"
18 | checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
19 |
20 | [[package]]
21 | name = "atk"
22 | version = "0.16.0"
23 | source = "registry+https://github.com/rust-lang/crates.io-index"
24 | checksum = "39991bc421ddf72f70159011b323ff49b0f783cc676a7287c59453da2e2531cf"
25 | dependencies = [
26 | "atk-sys",
27 | "bitflags 1.3.2",
28 | "glib",
29 | "libc",
30 | ]
31 |
32 | [[package]]
33 | name = "atk-sys"
34 | version = "0.16.0"
35 | source = "registry+https://github.com/rust-lang/crates.io-index"
36 | checksum = "11ad703eb64dc058024f0e57ccfa069e15a413b98dbd50a1a950e743b7f11148"
37 | dependencies = [
38 | "glib-sys",
39 | "gobject-sys",
40 | "libc",
41 | "system-deps",
42 | ]
43 |
44 | [[package]]
45 | name = "autocfg"
46 | version = "1.1.0"
47 | source = "registry+https://github.com/rust-lang/crates.io-index"
48 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
49 |
50 | [[package]]
51 | name = "bitflags"
52 | version = "1.3.2"
53 | source = "registry+https://github.com/rust-lang/crates.io-index"
54 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
55 |
56 | [[package]]
57 | name = "bitflags"
58 | version = "2.5.0"
59 | source = "registry+https://github.com/rust-lang/crates.io-index"
60 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
61 |
62 | [[package]]
63 | name = "bumpalo"
64 | version = "3.11.1"
65 | source = "registry+https://github.com/rust-lang/crates.io-index"
66 | checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
67 |
68 | [[package]]
69 | name = "cairo-rs"
70 | version = "0.16.3"
71 | source = "registry+https://github.com/rust-lang/crates.io-index"
72 | checksum = "247e1183fa769ac22121f92276dae52f89acaf297f24b1320019f439b6e3b46f"
73 | dependencies = [
74 | "bitflags 1.3.2",
75 | "cairo-sys-rs",
76 | "glib",
77 | "libc",
78 | "once_cell",
79 | "thiserror",
80 | ]
81 |
82 | [[package]]
83 | name = "cairo-sys-rs"
84 | version = "0.16.3"
85 | source = "registry+https://github.com/rust-lang/crates.io-index"
86 | checksum = "7c48f4af05fabdcfa9658178e1326efa061853f040ce7d72e33af6885196f421"
87 | dependencies = [
88 | "glib-sys",
89 | "libc",
90 | "system-deps",
91 | ]
92 |
93 | [[package]]
94 | name = "cc"
95 | version = "1.0.77"
96 | source = "registry+https://github.com/rust-lang/crates.io-index"
97 | checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
98 | dependencies = [
99 | "jobserver",
100 | ]
101 |
102 | [[package]]
103 | name = "cfg-expr"
104 | version = "0.11.0"
105 | source = "registry+https://github.com/rust-lang/crates.io-index"
106 | checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
107 | dependencies = [
108 | "smallvec",
109 | ]
110 |
111 | [[package]]
112 | name = "cfg-if"
113 | version = "1.0.0"
114 | source = "registry+https://github.com/rust-lang/crates.io-index"
115 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
116 |
117 | [[package]]
118 | name = "chrono"
119 | version = "0.4.23"
120 | source = "registry+https://github.com/rust-lang/crates.io-index"
121 | checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
122 | dependencies = [
123 | "iana-time-zone",
124 | "js-sys",
125 | "num-integer",
126 | "num-traits",
127 | "time",
128 | "wasm-bindgen",
129 | "winapi",
130 | ]
131 |
132 | [[package]]
133 | name = "codespan-reporting"
134 | version = "0.11.1"
135 | source = "registry+https://github.com/rust-lang/crates.io-index"
136 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
137 | dependencies = [
138 | "termcolor",
139 | "unicode-width",
140 | ]
141 |
142 | [[package]]
143 | name = "core-foundation-sys"
144 | version = "0.8.3"
145 | source = "registry+https://github.com/rust-lang/crates.io-index"
146 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
147 |
148 | [[package]]
149 | name = "cxx"
150 | version = "1.0.83"
151 | source = "registry+https://github.com/rust-lang/crates.io-index"
152 | checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf"
153 | dependencies = [
154 | "cc",
155 | "cxxbridge-flags",
156 | "cxxbridge-macro",
157 | "link-cplusplus",
158 | ]
159 |
160 | [[package]]
161 | name = "cxx-build"
162 | version = "1.0.83"
163 | source = "registry+https://github.com/rust-lang/crates.io-index"
164 | checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39"
165 | dependencies = [
166 | "cc",
167 | "codespan-reporting",
168 | "once_cell",
169 | "proc-macro2",
170 | "quote",
171 | "scratch",
172 | "syn",
173 | ]
174 |
175 | [[package]]
176 | name = "cxxbridge-flags"
177 | version = "1.0.83"
178 | source = "registry+https://github.com/rust-lang/crates.io-index"
179 | checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12"
180 |
181 | [[package]]
182 | name = "cxxbridge-macro"
183 | version = "1.0.83"
184 | source = "registry+https://github.com/rust-lang/crates.io-index"
185 | checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6"
186 | dependencies = [
187 | "proc-macro2",
188 | "quote",
189 | "syn",
190 | ]
191 |
192 | [[package]]
193 | name = "field-offset"
194 | version = "0.3.4"
195 | source = "registry+https://github.com/rust-lang/crates.io-index"
196 | checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92"
197 | dependencies = [
198 | "memoffset",
199 | "rustc_version",
200 | ]
201 |
202 | [[package]]
203 | name = "form_urlencoded"
204 | version = "1.1.0"
205 | source = "registry+https://github.com/rust-lang/crates.io-index"
206 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
207 | dependencies = [
208 | "percent-encoding",
209 | ]
210 |
211 | [[package]]
212 | name = "fuchsia-cprng"
213 | version = "0.1.1"
214 | source = "registry+https://github.com/rust-lang/crates.io-index"
215 | checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
216 |
217 | [[package]]
218 | name = "futures-channel"
219 | version = "0.3.25"
220 | source = "registry+https://github.com/rust-lang/crates.io-index"
221 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
222 | dependencies = [
223 | "futures-core",
224 | ]
225 |
226 | [[package]]
227 | name = "futures-core"
228 | version = "0.3.25"
229 | source = "registry+https://github.com/rust-lang/crates.io-index"
230 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
231 |
232 | [[package]]
233 | name = "futures-executor"
234 | version = "0.3.25"
235 | source = "registry+https://github.com/rust-lang/crates.io-index"
236 | checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
237 | dependencies = [
238 | "futures-core",
239 | "futures-task",
240 | "futures-util",
241 | ]
242 |
243 | [[package]]
244 | name = "futures-io"
245 | version = "0.3.25"
246 | source = "registry+https://github.com/rust-lang/crates.io-index"
247 | checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
248 |
249 | [[package]]
250 | name = "futures-macro"
251 | version = "0.3.25"
252 | source = "registry+https://github.com/rust-lang/crates.io-index"
253 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
254 | dependencies = [
255 | "proc-macro2",
256 | "quote",
257 | "syn",
258 | ]
259 |
260 | [[package]]
261 | name = "futures-task"
262 | version = "0.3.25"
263 | source = "registry+https://github.com/rust-lang/crates.io-index"
264 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
265 |
266 | [[package]]
267 | name = "futures-util"
268 | version = "0.3.25"
269 | source = "registry+https://github.com/rust-lang/crates.io-index"
270 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
271 | dependencies = [
272 | "futures-core",
273 | "futures-macro",
274 | "futures-task",
275 | "pin-project-lite",
276 | "pin-utils",
277 | "slab",
278 | ]
279 |
280 | [[package]]
281 | name = "gdk"
282 | version = "0.16.2"
283 | source = "registry+https://github.com/rust-lang/crates.io-index"
284 | checksum = "aa9cb33da481c6c040404a11f8212d193889e9b435db2c14fd86987f630d3ce1"
285 | dependencies = [
286 | "bitflags 1.3.2",
287 | "cairo-rs",
288 | "gdk-pixbuf",
289 | "gdk-sys",
290 | "gio",
291 | "glib",
292 | "libc",
293 | "pango",
294 | ]
295 |
296 | [[package]]
297 | name = "gdk-pixbuf"
298 | version = "0.16.4"
299 | source = "registry+https://github.com/rust-lang/crates.io-index"
300 | checksum = "d3094f2b8578136d1929cade4e0fff82f573521b579e96cfc24af2458431f176"
301 | dependencies = [
302 | "bitflags 1.3.2",
303 | "gdk-pixbuf-sys",
304 | "gio",
305 | "glib",
306 | "libc",
307 | ]
308 |
309 | [[package]]
310 | name = "gdk-pixbuf-sys"
311 | version = "0.16.3"
312 | source = "registry+https://github.com/rust-lang/crates.io-index"
313 | checksum = "3092cf797a5f1210479ea38070d9ae8a5b8e9f8f1be9f32f4643c529c7d70016"
314 | dependencies = [
315 | "gio-sys",
316 | "glib-sys",
317 | "gobject-sys",
318 | "libc",
319 | "system-deps",
320 | ]
321 |
322 | [[package]]
323 | name = "gdk-sys"
324 | version = "0.16.0"
325 | source = "registry+https://github.com/rust-lang/crates.io-index"
326 | checksum = "d76354f97a913e55b984759a997b693aa7dc71068c9e98bcce51aa167a0a5c5a"
327 | dependencies = [
328 | "cairo-sys-rs",
329 | "gdk-pixbuf-sys",
330 | "gio-sys",
331 | "glib-sys",
332 | "gobject-sys",
333 | "libc",
334 | "pango-sys",
335 | "pkg-config",
336 | "system-deps",
337 | ]
338 |
339 | [[package]]
340 | name = "gio"
341 | version = "0.16.3"
342 | source = "registry+https://github.com/rust-lang/crates.io-index"
343 | checksum = "1d4a17d999e6e4e05d87c2bb05b7140d47769bc53211711a33e2f91536458714"
344 | dependencies = [
345 | "bitflags 1.3.2",
346 | "futures-channel",
347 | "futures-core",
348 | "futures-io",
349 | "futures-util",
350 | "gio-sys",
351 | "glib",
352 | "libc",
353 | "once_cell",
354 | "pin-project-lite",
355 | "smallvec",
356 | "thiserror",
357 | ]
358 |
359 | [[package]]
360 | name = "gio-sys"
361 | version = "0.16.3"
362 | source = "registry+https://github.com/rust-lang/crates.io-index"
363 | checksum = "e9b693b8e39d042a95547fc258a7b07349b1f0b48f4b2fa3108ba3c51c0b5229"
364 | dependencies = [
365 | "glib-sys",
366 | "gobject-sys",
367 | "libc",
368 | "system-deps",
369 | "winapi",
370 | ]
371 |
372 | [[package]]
373 | name = "git2"
374 | version = "0.18.3"
375 | source = "registry+https://github.com/rust-lang/crates.io-index"
376 | checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
377 | dependencies = [
378 | "bitflags 2.5.0",
379 | "libc",
380 | "libgit2-sys",
381 | "log",
382 | "openssl-probe",
383 | "openssl-sys",
384 | "url",
385 | ]
386 |
387 | [[package]]
388 | name = "glib"
389 | version = "0.16.5"
390 | source = "registry+https://github.com/rust-lang/crates.io-index"
391 | checksum = "0cd04d150a2c63e6779f43aec7e04f5374252479b7bed5f45146d9c0e821f161"
392 | dependencies = [
393 | "bitflags 1.3.2",
394 | "futures-channel",
395 | "futures-core",
396 | "futures-executor",
397 | "futures-task",
398 | "futures-util",
399 | "gio-sys",
400 | "glib-macros",
401 | "glib-sys",
402 | "gobject-sys",
403 | "libc",
404 | "once_cell",
405 | "smallvec",
406 | "thiserror",
407 | ]
408 |
409 | [[package]]
410 | name = "glib-macros"
411 | version = "0.16.3"
412 | source = "registry+https://github.com/rust-lang/crates.io-index"
413 | checksum = "e084807350b01348b6d9dbabb724d1a0bb987f47a2c85de200e98e12e30733bf"
414 | dependencies = [
415 | "anyhow",
416 | "heck",
417 | "proc-macro-crate",
418 | "proc-macro-error",
419 | "proc-macro2",
420 | "quote",
421 | "syn",
422 | ]
423 |
424 | [[package]]
425 | name = "glib-sys"
426 | version = "0.16.3"
427 | source = "registry+https://github.com/rust-lang/crates.io-index"
428 | checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65"
429 | dependencies = [
430 | "libc",
431 | "system-deps",
432 | ]
433 |
434 | [[package]]
435 | name = "gobject-sys"
436 | version = "0.16.3"
437 | source = "registry+https://github.com/rust-lang/crates.io-index"
438 | checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1"
439 | dependencies = [
440 | "glib-sys",
441 | "libc",
442 | "system-deps",
443 | ]
444 |
445 | [[package]]
446 | name = "gtk"
447 | version = "0.16.2"
448 | source = "registry+https://github.com/rust-lang/crates.io-index"
449 | checksum = "e4d3507d43908c866c805f74c9dd593c0ce7ba5c38e576e41846639cdcd4bee6"
450 | dependencies = [
451 | "atk",
452 | "bitflags 1.3.2",
453 | "cairo-rs",
454 | "field-offset",
455 | "futures-channel",
456 | "gdk",
457 | "gdk-pixbuf",
458 | "gio",
459 | "glib",
460 | "gtk-sys",
461 | "gtk3-macros",
462 | "libc",
463 | "once_cell",
464 | "pango",
465 | "pkg-config",
466 | ]
467 |
468 | [[package]]
469 | name = "gtk-sys"
470 | version = "0.16.0"
471 | source = "registry+https://github.com/rust-lang/crates.io-index"
472 | checksum = "89b5f8946685d5fe44497007786600c2f368ff6b1e61a16251c89f72a97520a3"
473 | dependencies = [
474 | "atk-sys",
475 | "cairo-sys-rs",
476 | "gdk-pixbuf-sys",
477 | "gdk-sys",
478 | "gio-sys",
479 | "glib-sys",
480 | "gobject-sys",
481 | "libc",
482 | "pango-sys",
483 | "system-deps",
484 | ]
485 |
486 | [[package]]
487 | name = "gtk3-macros"
488 | version = "0.16.0"
489 | source = "registry+https://github.com/rust-lang/crates.io-index"
490 | checksum = "8cfd6557b1018b773e43c8de9d0d13581d6b36190d0501916cbec4731db5ccff"
491 | dependencies = [
492 | "anyhow",
493 | "proc-macro-crate",
494 | "proc-macro-error",
495 | "proc-macro2",
496 | "quote",
497 | "syn",
498 | ]
499 |
500 | [[package]]
501 | name = "heck"
502 | version = "0.4.0"
503 | source = "registry+https://github.com/rust-lang/crates.io-index"
504 | checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
505 |
506 | [[package]]
507 | name = "iana-time-zone"
508 | version = "0.1.53"
509 | source = "registry+https://github.com/rust-lang/crates.io-index"
510 | checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
511 | dependencies = [
512 | "android_system_properties",
513 | "core-foundation-sys",
514 | "iana-time-zone-haiku",
515 | "js-sys",
516 | "wasm-bindgen",
517 | "winapi",
518 | ]
519 |
520 | [[package]]
521 | name = "iana-time-zone-haiku"
522 | version = "0.1.1"
523 | source = "registry+https://github.com/rust-lang/crates.io-index"
524 | checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
525 | dependencies = [
526 | "cxx",
527 | "cxx-build",
528 | ]
529 |
530 | [[package]]
531 | name = "idna"
532 | version = "0.3.0"
533 | source = "registry+https://github.com/rust-lang/crates.io-index"
534 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
535 | dependencies = [
536 | "unicode-bidi",
537 | "unicode-normalization",
538 | ]
539 |
540 | [[package]]
541 | name = "jobserver"
542 | version = "0.1.25"
543 | source = "registry+https://github.com/rust-lang/crates.io-index"
544 | checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b"
545 | dependencies = [
546 | "libc",
547 | ]
548 |
549 | [[package]]
550 | name = "js-sys"
551 | version = "0.3.60"
552 | source = "registry+https://github.com/rust-lang/crates.io-index"
553 | checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
554 | dependencies = [
555 | "wasm-bindgen",
556 | ]
557 |
558 | [[package]]
559 | name = "libc"
560 | version = "0.2.138"
561 | source = "registry+https://github.com/rust-lang/crates.io-index"
562 | checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
563 |
564 | [[package]]
565 | name = "libgit2-sys"
566 | version = "0.16.2+1.7.2"
567 | source = "registry+https://github.com/rust-lang/crates.io-index"
568 | checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
569 | dependencies = [
570 | "cc",
571 | "libc",
572 | "libssh2-sys",
573 | "libz-sys",
574 | "openssl-sys",
575 | "pkg-config",
576 | ]
577 |
578 | [[package]]
579 | name = "libssh2-sys"
580 | version = "0.3.0"
581 | source = "registry+https://github.com/rust-lang/crates.io-index"
582 | checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
583 | dependencies = [
584 | "cc",
585 | "libc",
586 | "libz-sys",
587 | "openssl-sys",
588 | "pkg-config",
589 | "vcpkg",
590 | ]
591 |
592 | [[package]]
593 | name = "libz-sys"
594 | version = "1.1.8"
595 | source = "registry+https://github.com/rust-lang/crates.io-index"
596 | checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
597 | dependencies = [
598 | "cc",
599 | "libc",
600 | "pkg-config",
601 | "vcpkg",
602 | ]
603 |
604 | [[package]]
605 | name = "link-cplusplus"
606 | version = "1.0.7"
607 | source = "registry+https://github.com/rust-lang/crates.io-index"
608 | checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
609 | dependencies = [
610 | "cc",
611 | ]
612 |
613 | [[package]]
614 | name = "log"
615 | version = "0.4.17"
616 | source = "registry+https://github.com/rust-lang/crates.io-index"
617 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
618 | dependencies = [
619 | "cfg-if",
620 | ]
621 |
622 | [[package]]
623 | name = "memoffset"
624 | version = "0.6.5"
625 | source = "registry+https://github.com/rust-lang/crates.io-index"
626 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
627 | dependencies = [
628 | "autocfg",
629 | ]
630 |
631 | [[package]]
632 | name = "metal-git"
633 | version = "0.0.1"
634 | dependencies = [
635 | "chrono",
636 | "git2",
637 | "glib",
638 | "gtk",
639 | "tempdir",
640 | ]
641 |
642 | [[package]]
643 | name = "num-integer"
644 | version = "0.1.45"
645 | source = "registry+https://github.com/rust-lang/crates.io-index"
646 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
647 | dependencies = [
648 | "autocfg",
649 | "num-traits",
650 | ]
651 |
652 | [[package]]
653 | name = "num-traits"
654 | version = "0.2.15"
655 | source = "registry+https://github.com/rust-lang/crates.io-index"
656 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
657 | dependencies = [
658 | "autocfg",
659 | ]
660 |
661 | [[package]]
662 | name = "once_cell"
663 | version = "1.16.0"
664 | source = "registry+https://github.com/rust-lang/crates.io-index"
665 | checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
666 |
667 | [[package]]
668 | name = "openssl-probe"
669 | version = "0.1.5"
670 | source = "registry+https://github.com/rust-lang/crates.io-index"
671 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
672 |
673 | [[package]]
674 | name = "openssl-sys"
675 | version = "0.9.78"
676 | source = "registry+https://github.com/rust-lang/crates.io-index"
677 | checksum = "07d5c8cb6e57b3a3612064d7b18b117912b4ce70955c2504d4b741c9e244b132"
678 | dependencies = [
679 | "autocfg",
680 | "cc",
681 | "libc",
682 | "pkg-config",
683 | "vcpkg",
684 | ]
685 |
686 | [[package]]
687 | name = "pango"
688 | version = "0.16.5"
689 | source = "registry+https://github.com/rust-lang/crates.io-index"
690 | checksum = "cdff66b271861037b89d028656184059e03b0b6ccb36003820be19f7200b1e94"
691 | dependencies = [
692 | "bitflags 1.3.2",
693 | "gio",
694 | "glib",
695 | "libc",
696 | "once_cell",
697 | "pango-sys",
698 | ]
699 |
700 | [[package]]
701 | name = "pango-sys"
702 | version = "0.16.3"
703 | source = "registry+https://github.com/rust-lang/crates.io-index"
704 | checksum = "9e134909a9a293e04d2cc31928aa95679c5e4df954d0b85483159bd20d8f047f"
705 | dependencies = [
706 | "glib-sys",
707 | "gobject-sys",
708 | "libc",
709 | "system-deps",
710 | ]
711 |
712 | [[package]]
713 | name = "percent-encoding"
714 | version = "2.2.0"
715 | source = "registry+https://github.com/rust-lang/crates.io-index"
716 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
717 |
718 | [[package]]
719 | name = "pest"
720 | version = "2.5.1"
721 | source = "registry+https://github.com/rust-lang/crates.io-index"
722 | checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0"
723 | dependencies = [
724 | "thiserror",
725 | "ucd-trie",
726 | ]
727 |
728 | [[package]]
729 | name = "pin-project-lite"
730 | version = "0.2.9"
731 | source = "registry+https://github.com/rust-lang/crates.io-index"
732 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
733 |
734 | [[package]]
735 | name = "pin-utils"
736 | version = "0.1.0"
737 | source = "registry+https://github.com/rust-lang/crates.io-index"
738 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
739 |
740 | [[package]]
741 | name = "pkg-config"
742 | version = "0.3.26"
743 | source = "registry+https://github.com/rust-lang/crates.io-index"
744 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
745 |
746 | [[package]]
747 | name = "proc-macro-crate"
748 | version = "1.2.1"
749 | source = "registry+https://github.com/rust-lang/crates.io-index"
750 | checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
751 | dependencies = [
752 | "once_cell",
753 | "thiserror",
754 | "toml",
755 | ]
756 |
757 | [[package]]
758 | name = "proc-macro-error"
759 | version = "1.0.4"
760 | source = "registry+https://github.com/rust-lang/crates.io-index"
761 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
762 | dependencies = [
763 | "proc-macro-error-attr",
764 | "proc-macro2",
765 | "quote",
766 | "syn",
767 | "version_check",
768 | ]
769 |
770 | [[package]]
771 | name = "proc-macro-error-attr"
772 | version = "1.0.4"
773 | source = "registry+https://github.com/rust-lang/crates.io-index"
774 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
775 | dependencies = [
776 | "proc-macro2",
777 | "quote",
778 | "version_check",
779 | ]
780 |
781 | [[package]]
782 | name = "proc-macro2"
783 | version = "1.0.47"
784 | source = "registry+https://github.com/rust-lang/crates.io-index"
785 | checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
786 | dependencies = [
787 | "unicode-ident",
788 | ]
789 |
790 | [[package]]
791 | name = "quote"
792 | version = "1.0.21"
793 | source = "registry+https://github.com/rust-lang/crates.io-index"
794 | checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
795 | dependencies = [
796 | "proc-macro2",
797 | ]
798 |
799 | [[package]]
800 | name = "rand"
801 | version = "0.4.6"
802 | source = "registry+https://github.com/rust-lang/crates.io-index"
803 | checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
804 | dependencies = [
805 | "fuchsia-cprng",
806 | "libc",
807 | "rand_core 0.3.1",
808 | "rdrand",
809 | "winapi",
810 | ]
811 |
812 | [[package]]
813 | name = "rand_core"
814 | version = "0.3.1"
815 | source = "registry+https://github.com/rust-lang/crates.io-index"
816 | checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
817 | dependencies = [
818 | "rand_core 0.4.2",
819 | ]
820 |
821 | [[package]]
822 | name = "rand_core"
823 | version = "0.4.2"
824 | source = "registry+https://github.com/rust-lang/crates.io-index"
825 | checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
826 |
827 | [[package]]
828 | name = "rdrand"
829 | version = "0.4.0"
830 | source = "registry+https://github.com/rust-lang/crates.io-index"
831 | checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
832 | dependencies = [
833 | "rand_core 0.3.1",
834 | ]
835 |
836 | [[package]]
837 | name = "remove_dir_all"
838 | version = "0.5.3"
839 | source = "registry+https://github.com/rust-lang/crates.io-index"
840 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
841 | dependencies = [
842 | "winapi",
843 | ]
844 |
845 | [[package]]
846 | name = "rustc_version"
847 | version = "0.3.3"
848 | source = "registry+https://github.com/rust-lang/crates.io-index"
849 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
850 | dependencies = [
851 | "semver",
852 | ]
853 |
854 | [[package]]
855 | name = "scratch"
856 | version = "1.0.2"
857 | source = "registry+https://github.com/rust-lang/crates.io-index"
858 | checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
859 |
860 | [[package]]
861 | name = "semver"
862 | version = "0.11.0"
863 | source = "registry+https://github.com/rust-lang/crates.io-index"
864 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
865 | dependencies = [
866 | "semver-parser",
867 | ]
868 |
869 | [[package]]
870 | name = "semver-parser"
871 | version = "0.10.2"
872 | source = "registry+https://github.com/rust-lang/crates.io-index"
873 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
874 | dependencies = [
875 | "pest",
876 | ]
877 |
878 | [[package]]
879 | name = "serde"
880 | version = "1.0.149"
881 | source = "registry+https://github.com/rust-lang/crates.io-index"
882 | checksum = "256b9932320c590e707b94576e3cc1f7c9024d0ee6612dfbcf1cb106cbe8e055"
883 |
884 | [[package]]
885 | name = "slab"
886 | version = "0.4.7"
887 | source = "registry+https://github.com/rust-lang/crates.io-index"
888 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
889 | dependencies = [
890 | "autocfg",
891 | ]
892 |
893 | [[package]]
894 | name = "smallvec"
895 | version = "1.10.0"
896 | source = "registry+https://github.com/rust-lang/crates.io-index"
897 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
898 |
899 | [[package]]
900 | name = "syn"
901 | version = "1.0.105"
902 | source = "registry+https://github.com/rust-lang/crates.io-index"
903 | checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
904 | dependencies = [
905 | "proc-macro2",
906 | "quote",
907 | "unicode-ident",
908 | ]
909 |
910 | [[package]]
911 | name = "system-deps"
912 | version = "6.0.3"
913 | source = "registry+https://github.com/rust-lang/crates.io-index"
914 | checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
915 | dependencies = [
916 | "cfg-expr",
917 | "heck",
918 | "pkg-config",
919 | "toml",
920 | "version-compare",
921 | ]
922 |
923 | [[package]]
924 | name = "tempdir"
925 | version = "0.3.7"
926 | source = "registry+https://github.com/rust-lang/crates.io-index"
927 | checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
928 | dependencies = [
929 | "rand",
930 | "remove_dir_all",
931 | ]
932 |
933 | [[package]]
934 | name = "termcolor"
935 | version = "1.1.3"
936 | source = "registry+https://github.com/rust-lang/crates.io-index"
937 | checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
938 | dependencies = [
939 | "winapi-util",
940 | ]
941 |
942 | [[package]]
943 | name = "thiserror"
944 | version = "1.0.37"
945 | source = "registry+https://github.com/rust-lang/crates.io-index"
946 | checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
947 | dependencies = [
948 | "thiserror-impl",
949 | ]
950 |
951 | [[package]]
952 | name = "thiserror-impl"
953 | version = "1.0.37"
954 | source = "registry+https://github.com/rust-lang/crates.io-index"
955 | checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
956 | dependencies = [
957 | "proc-macro2",
958 | "quote",
959 | "syn",
960 | ]
961 |
962 | [[package]]
963 | name = "time"
964 | version = "0.1.45"
965 | source = "registry+https://github.com/rust-lang/crates.io-index"
966 | checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
967 | dependencies = [
968 | "libc",
969 | "wasi",
970 | "winapi",
971 | ]
972 |
973 | [[package]]
974 | name = "tinyvec"
975 | version = "1.6.0"
976 | source = "registry+https://github.com/rust-lang/crates.io-index"
977 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
978 | dependencies = [
979 | "tinyvec_macros",
980 | ]
981 |
982 | [[package]]
983 | name = "tinyvec_macros"
984 | version = "0.1.0"
985 | source = "registry+https://github.com/rust-lang/crates.io-index"
986 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
987 |
988 | [[package]]
989 | name = "toml"
990 | version = "0.5.9"
991 | source = "registry+https://github.com/rust-lang/crates.io-index"
992 | checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
993 | dependencies = [
994 | "serde",
995 | ]
996 |
997 | [[package]]
998 | name = "ucd-trie"
999 | version = "0.1.5"
1000 | source = "registry+https://github.com/rust-lang/crates.io-index"
1001 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
1002 |
1003 | [[package]]
1004 | name = "unicode-bidi"
1005 | version = "0.3.8"
1006 | source = "registry+https://github.com/rust-lang/crates.io-index"
1007 | checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
1008 |
1009 | [[package]]
1010 | name = "unicode-ident"
1011 | version = "1.0.5"
1012 | source = "registry+https://github.com/rust-lang/crates.io-index"
1013 | checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
1014 |
1015 | [[package]]
1016 | name = "unicode-normalization"
1017 | version = "0.1.22"
1018 | source = "registry+https://github.com/rust-lang/crates.io-index"
1019 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
1020 | dependencies = [
1021 | "tinyvec",
1022 | ]
1023 |
1024 | [[package]]
1025 | name = "unicode-width"
1026 | version = "0.1.10"
1027 | source = "registry+https://github.com/rust-lang/crates.io-index"
1028 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
1029 |
1030 | [[package]]
1031 | name = "url"
1032 | version = "2.3.1"
1033 | source = "registry+https://github.com/rust-lang/crates.io-index"
1034 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
1035 | dependencies = [
1036 | "form_urlencoded",
1037 | "idna",
1038 | "percent-encoding",
1039 | ]
1040 |
1041 | [[package]]
1042 | name = "vcpkg"
1043 | version = "0.2.15"
1044 | source = "registry+https://github.com/rust-lang/crates.io-index"
1045 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
1046 |
1047 | [[package]]
1048 | name = "version-compare"
1049 | version = "0.1.1"
1050 | source = "registry+https://github.com/rust-lang/crates.io-index"
1051 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
1052 |
1053 | [[package]]
1054 | name = "version_check"
1055 | version = "0.9.4"
1056 | source = "registry+https://github.com/rust-lang/crates.io-index"
1057 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
1058 |
1059 | [[package]]
1060 | name = "wasi"
1061 | version = "0.10.0+wasi-snapshot-preview1"
1062 | source = "registry+https://github.com/rust-lang/crates.io-index"
1063 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
1064 |
1065 | [[package]]
1066 | name = "wasm-bindgen"
1067 | version = "0.2.83"
1068 | source = "registry+https://github.com/rust-lang/crates.io-index"
1069 | checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
1070 | dependencies = [
1071 | "cfg-if",
1072 | "wasm-bindgen-macro",
1073 | ]
1074 |
1075 | [[package]]
1076 | name = "wasm-bindgen-backend"
1077 | version = "0.2.83"
1078 | source = "registry+https://github.com/rust-lang/crates.io-index"
1079 | checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
1080 | dependencies = [
1081 | "bumpalo",
1082 | "log",
1083 | "once_cell",
1084 | "proc-macro2",
1085 | "quote",
1086 | "syn",
1087 | "wasm-bindgen-shared",
1088 | ]
1089 |
1090 | [[package]]
1091 | name = "wasm-bindgen-macro"
1092 | version = "0.2.83"
1093 | source = "registry+https://github.com/rust-lang/crates.io-index"
1094 | checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
1095 | dependencies = [
1096 | "quote",
1097 | "wasm-bindgen-macro-support",
1098 | ]
1099 |
1100 | [[package]]
1101 | name = "wasm-bindgen-macro-support"
1102 | version = "0.2.83"
1103 | source = "registry+https://github.com/rust-lang/crates.io-index"
1104 | checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
1105 | dependencies = [
1106 | "proc-macro2",
1107 | "quote",
1108 | "syn",
1109 | "wasm-bindgen-backend",
1110 | "wasm-bindgen-shared",
1111 | ]
1112 |
1113 | [[package]]
1114 | name = "wasm-bindgen-shared"
1115 | version = "0.2.83"
1116 | source = "registry+https://github.com/rust-lang/crates.io-index"
1117 | checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
1118 |
1119 | [[package]]
1120 | name = "winapi"
1121 | version = "0.3.9"
1122 | source = "registry+https://github.com/rust-lang/crates.io-index"
1123 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
1124 | dependencies = [
1125 | "winapi-i686-pc-windows-gnu",
1126 | "winapi-x86_64-pc-windows-gnu",
1127 | ]
1128 |
1129 | [[package]]
1130 | name = "winapi-i686-pc-windows-gnu"
1131 | version = "0.4.0"
1132 | source = "registry+https://github.com/rust-lang/crates.io-index"
1133 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
1134 |
1135 | [[package]]
1136 | name = "winapi-util"
1137 | version = "0.1.5"
1138 | source = "registry+https://github.com/rust-lang/crates.io-index"
1139 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
1140 | dependencies = [
1141 | "winapi",
1142 | ]
1143 |
1144 | [[package]]
1145 | name = "winapi-x86_64-pc-windows-gnu"
1146 | version = "0.4.0"
1147 | source = "registry+https://github.com/rust-lang/crates.io-index"
1148 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1149 |
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "metal-git"
3 | version = "0.0.1"
4 | authors = ["Yoichi Imai "]
5 | build = "build.rs"
6 | edition = "2021"
7 |
8 | [lib]
9 | name = "metal_git"
10 | path = "src/main.rs"
11 |
12 | [dependencies]
13 | git2 = "^0.18"
14 | gtk = { version = "^0.16" }
15 | glib = { version = "^0.16" }
16 | chrono = "*"
17 |
18 | [dev-dependencies]
19 | tempdir = "0.3"
20 |
21 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016 Yoichi Imai, All rights reserved.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Metal Git
2 |
3 | # What's this?
4 |
5 | GUI Git Frontend written in gtk-rs (gtk+ Rust wrapper) and git2-rs (libgit2 Rust wrapper).
6 |
7 | # Caution
8 |
9 | This program is now in experimental stage. It may destroy your files or repositories, so use carefully.
10 |
11 | # How to build?
12 |
13 | Install build dependencies at first. This program requires gtk+3 and libgit2.
14 |
15 | In Ubuntu 14.04 / 16.04, run this:
16 |
17 | ```
18 | $ sudo apt install libgtk-3-dev libgit2-dev cmake
19 | ```
20 |
21 | If build dependencies are properly installed, cargo should succeed.
22 |
23 | ```
24 | $ cargo run
25 | ```
26 |
27 | This program opens a git repository at the working directory.
28 |
29 | If you want a binary, use cargo build.
30 |
31 | ```
32 | $ cargo build --release
33 | $ sudo cp target/release/metal-git /usr/local/bin
34 | ```
35 |
36 | # Author
37 |
38 | Yoichi Imai
39 |
--------------------------------------------------------------------------------
/build.rs:
--------------------------------------------------------------------------------
1 | use std::process::Command;
2 |
3 | fn main() {
4 | Command::new("glib-compile-resources")
5 | .args(&["--generate", "resources.xml"])
6 | .current_dir("src/resources")
7 | .status()
8 | .unwrap();
9 | }
--------------------------------------------------------------------------------
/src/commit_diff_panel.rs:
--------------------------------------------------------------------------------
1 | use git2::{DiffOptions, Error, Oid};
2 | use glib::{Cast, StaticType};
3 | use gtk::prelude::GtkListStoreExt;
4 | use gtk::prelude::GtkListStoreExtManual;
5 | use gtk::prelude::TreeViewColumnExt;
6 | use gtk::traits::{
7 | ContainerExt, PanedExt, TextViewExt, TreeModelExt, TreeSelectionExt, TreeViewExt,
8 | };
9 | use gtk::Orientation;
10 | use std::cell::RefCell;
11 | use std::rc::Rc;
12 |
13 | use crate::commit_diff_util;
14 | use crate::commit_diff_util::ListCommitDiffResult;
15 | use crate::diff_text_view_util;
16 | use crate::diff_text_view_util::create_diff_text_buffer;
17 | use crate::repository_manager::RepositoryManager;
18 |
19 | pub struct CommitDiffPanel {
20 | paned: gtk::Paned,
21 |
22 | diff_list_store: gtk::ListStore,
23 | diff_tree_view: gtk::TreeView,
24 |
25 | commit_text_view: gtk::TextView,
26 |
27 | repository_manager: Rc,
28 | current_list_result: RefCell