gitbutlerapp / gitbutler Goto Github PK
View Code? Open in Web Editor NEWThe GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte
Home Page: https://gitbutler.com
License: Other
The GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte
Home Page: https://gitbutler.com
License: Other
On macOS, I cannot open my repository that is a submodule (https://github.com/hermit-os/kernel inside https://github.com/hermit-os/hermit-rs).
For reproduction:
git clone --recursive [email protected]:hermit-os/hermit-rs.git
Then try to open hermit-rs/kernel
in GitButler.
[...]
2024-02-05T13:07:48.611165Z ERROR add_project: gitbutler-app/src/projects/commands.rs:75: failed to add project error=failed to open repository
Caused by:
path not found: /Users/mkroening/Downloads/hermit-rs/kernel/.git/objects path="/Users/mkroening/Downloads/hermit-rs/kernel"
[...]
The user interface only has a small toast notification, βSomething went wrong.β
i noticed the task bar icon (aka tray icon) in my i3 desktop is not visible at the bottom right. i confirmed can interact with it but its invisible
via: yassin0785
https://discord.com/channels/1060193121130000425/1060193121666863156/1204801724582465587
Hi,
I really love your app and appreciate the hard work your putting on it. I would really appreciate if you added it to the homebrew package manager for macOS. This would help us developers keep our packages up to date easier.
Much appreciated, Kara
Freshly installing GitButler from https://app.gitbutler.com/downloads/release/darwin/x86_64/dmg, Version 0.10.6 (20240212.175429), leads to this:
π¬
Tested on a couple MacBooks running macOS 10.15.6 and 10.15.7.
Not sure what diagnostics I can include, but can provide anything if requested.
Provide rpm distributions for Fedora / CentOS users
Tracking windows support
Edit by @Qix-
Hello everyone, Windows support is live. See #2594 (comment) and https://gitbutler.com for links!
Use GitHub to automatically build the Tauri app on all supported platforms. It would be nice to let the web app know (when we have one) when this occurs so we can promote builds to the auto-updater.
When opening a git project with hundreds or branches it is tedious to find the right "target" by scrolling
Steps to reproduce:
ipc->add_project: {"path":"C:\Users\username\Documents\websites\git"} Error: Something went wrong
at UserError.fromError (ipc.ts:30:10)
at ipc.ts:81:33
at async ProjectService.add (projects.ts:79:19)
at async HTMLButtonElement.onNewProject (Welcome.svelte:17:23) {code: 'errors.unknown', message: 'Something went wrong'}
I even tried creating a new git repo from scratch in a different directory and disk, but the issue still happened.
The first time you open the app, we should detect that you are a new user and run you through an onboarding process. This would be to connect to your GitButler account or sign up for a new one, point it at your first project, describe what we're doing a little, ask for permissions to collect data, etc. All of these can be changed in User/Account settings later, but we need a first project and some instructions.
The client should have a dashboard where you can see all your projects and a unified timeline of all your projects workspaces. You can visualize how you switch around your projects, change your current focused project, etc. Perhaps we can auto-switch you into a project if we see you editing it (beware of log changes, etc, though gitignore should mostly handle that).
wrt https://discord.com/channels/1060193121130000425/1073202153163857920/1203605030637412432
When i'm doing actions in the UI, everything happens sequentially, even tasks that should be independent of each other.
The experience is best described as 'doing one thing at the same time with some sort of single process queue of actions'.
The client should be able to upload the changes they are recording to an offline service. This should by default be our servers, but if the user does not want to use our service, they can provide their own endpoint.
For me git pre-commit hooks aren't executed.
Judging from #2551 it seems like they should be, just without being able to view the output?
The Tauri client should be able to update itself automatically.
Hey folks,
the git authentication is failing for me through the Gitbutler client. It is however working fine through the git
CLI and various IDEs (Intellij and VSCode for example).
My setup:
ssh-add -l
)cat ~/.ssh/config
)Within Gitbutler, I tried the Auto Detect
mode, as well as Use existing SSH key
(without passphrase).
Error shown within Gitbutler:
Hey. It just happened again that my projects.json
had an syntax error. Closed yesterday night my laptop with Gitbutler running. Today I opened the laptop and found that Gitbutler app displayed an error message. (forgot to take a screen). Checked the projects.json
and at the end it had something like:
...
"project_data_last_fetch": {
"error": {
"timestamp": {
"secs_since_epoch": 1706828585,
"nanos_since_epoch": 216435000
},
"error": "failed to fetch"
}
}
}
]iled to fetch"
}
}
}
via: @PalMartin
https://discord.com/channels/1060193121130000425/1073202153163857920/1202882531196665936
If you point GitButler to a repository without any commits, you'll get the following error:
It would be great if the error message was specific or, ideally, GitButler would allow you to create the first commit.
I'm running version 0.9.17 (20240118.182445).
git init
in a new directoryRelevant System Config Information
Version: AppImage 0.10.4
Distribution: Arch Linux
DE: Plasma 5.27.10 (Wayland)
Kernel: 6.6.16
Steps to reproduce
Start the app, close the Window (or hide via the system tray).
Click "Show GitButler"
Nothing happens but the system tray gets stuck on "Hide GitButler"
I can test XOrg on Arch later (and Wayland with the current kernel), but I'll need to use my personal machine as my work machine needs fractional scaling from Wayland to display certain things correctly.
Are there any plans for a CLI? I'm a heavy user of git stash
and stage changes exclusively with git add -p
. GitButler should fit right in and it would be great if leaving the terminal was optional.
via: @tt
https://discord.com/channels/1060193121130000425/1176875943873232947/1198631782011129906
When I am searching for a branch, the search input disappears if the search does not match any branch. The search input should remain visible so the user can edit his search
Package as a Snap and publish on the Snap store.
If a commit hook fails, it's difficult to see why. Maybe we can show the output on a failure?
New profile picture doesn't reflect next to the commit messages in virtual branches
Currently, git-butler works with hunks.
In a significant number of times, hunks are too coarse grained for me. Therefore, I like the line-based workings of git gui
.
(Artificial example to show the context menu)
I would love if git-butler could support line-based drag'n'drop, too.
By that I mean:
Variant 1:
Variant 2:
It would be nice also being able to create Merge Requests from GitButler on GitLab the same way it supports creating Pull Requests on GitHub. π
wrt https://discord.com/channels/1060193121130000425/1073202153163857920/1203599833236119552
I changed a 39MB ts file (generated obviously) and the entire UI stopped working.
I had to recover by stashing from old school git and applying the changes back in a regular branch. Deleting the integration branch and restarting.
Outside observation: the diff calculation is single threaded and running on an M3 efficiency core. Making this multithreaded would significantly speed this up (at least on my machine)
hy i want to give this app a try i am on linux and i use X11 with a hidpi scalling and xftpi is set to Xft.dpi: 133
in .Xresources to set up the scaling so my other apps respects that so no apps look too small but gitbuttler's diff panes scalling is very small to be comfortable to me is there any way to control the scalling factor etc
the ..(uiBuilder line switched places with the CommonLayerModule which vscode and Tower show in a way that is understandable
What is weird is that the second part of the changeset, where CommonLayerModule is added on line 73, has does not show uiBuilder on line 72.
This either needs to be 1 changeset like the tower screenshot or in part 2 line 72 should be the uiBuilder line
When I tried to open a currently working git repository. I got error like this
Then I cloned this repo and Tried to see what's causing Issue.
In there I found that, One file don't have a read permission in that directory.
That's causing issue.
When i add that is in .gitignore, It's working fine.
2024-02-12T18:13:14.208850Z ERROR add_project: gitbutler-app/src/projects/commands.rs:75: failed to add project error=failed to open repository
Caused by:
0: failed to run initial flush
1: failed to build working directory tree
2: failed to build wd index
3: failed to add working directory path .../liveStreaming.csv
4: failed open - '/Users/..../liveStreaming.csv' is locked: Permission denied; class=Os (2) path="/Users/..."
The client needs a way to view the data that it is recording. This should be presented as a timeline to the user and the user should have some tooling to inspect and compare data at any point in the timeline.
While the AppImage is nice, it also feels weird a bit and automatic app updates aren't possible.
Hence I wanted to install GitButler natively but I needed an RPM since I'm running Fedora.
I thought that I could just convert the .deb
package with Alien (sudo alien -r git-butler_0.9.14_amd64.deb
) but I'm getting this error when trying to install it:
So I guess a native installation won't work.
Hence I'd like to see a Flatpak to be available. It works on every Linux distribution the same while also allowing to update the apps centralised.
On macOS, after clicking βAdd new projectβ and selecting a directory, you are prompted to select a target branch. There is a βBackβ button next to βLet's go!β, but it does not work. Even after restarting the app, I can't leave the screen.
Resetting the app with rm -rf ~/Library/Application\ Support/com.gitbutler.app
works.
Reported via email:
% apt-get install -y git-butler_0.9.21_amd64.deb
# or dpkg -i git-butler_0.9.21_amd64.deb
% dpkg --configure -a
dpkg: warning: parsing file '/var/lib/dpkg/status' near line 15910 package 'git-butler':
missing 'Maintainer' field
% cat /var/lib/dpkg/status
Package: git-butler
Status: install ok installed
Priority: optional
Installed-Size: 244177
Architecture: amd64
Version: 0.9.21
Depends: libayatana-appindicator3-1, libwebkit2gtk-4.0-37, libgtk-3-0
Description: (none)
(none)
I would like to change the trunk branch without the need to re-import the project
via @koppor
https://discord.com/channels/1060193121130000425/1176875943873232947/1193874541164908544
Running git-butler leads to a crash on pop-os 22.04 (basically ubuntu 22.04):
git-butler
thread 'main' has overflowed its stack
fatal runtime error: stack overflow
[1] 16464 IOT instruction (core dumped) git-butler
Installed deb of 0.10
β― dpkg -l git-butler
dpkg-query: warning: parsing file '/var/lib/dpkg/status' near line 8828 package 'git-butler':
missing 'Maintainer' field
ββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STDIN
ββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1 β Desired=Unknown/Install/Remove/Purge/Hold
2 β | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
3 β |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
4 β ||/ Name Version Architecture Description
5 β +++-==============-============-============-=================================
6 β ii git-butler 0.10.0 amd64 (none)
ββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β― dpkg -L git-butler
dpkg-query: warning: parsing file '/var/lib/dpkg/status' near line 8828 package 'git-butler':
missing 'Maintainer' field
/usr
/usr/share
/usr/share/applications
/usr/share/applications/git-butler.desktop
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/256x256@2
/usr/share/icons/hicolor/256x256@2/apps
/usr/share/icons/hicolor/256x256@2/apps/git-butler.png
/usr/share/icons/hicolor/128x128
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/128x128/apps/git-butler.png
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/32x32/apps/git-butler.png
/usr/bin
/usr/bin/git-butler
Hey, it would be nice if, after I squash commits, I could simple change the commit message by clicking on it, rather to click on undo an rephrase the commit.
via: @PalMartin
https://discord.com/channels/1060193121130000425/1176875943873232947/1187347593022427178
The client needs to record everything happening in the working directory. We decided this would be via git commits of the state of the working tree (tracked and untracked files) along with metadata of the crdt deltas from the last tree to this one.
Each commit will happen when there is at least 5 minutes of no changes, or every hour at maximum. We will also record metadata about the session.
The tree structure linked to by each commit will look like this:
- wd/
- README.md
- lib/
- config.rb
[etc]
- session/
- meta/
- session-start (timestamp)
- session-last (timestamp)
- branch (branch name)
- commit (last commit sha)
- deltas/
- README.md (crdt data, with git blob SHA as base)
- lib/
- config.rb (crdt data)
This should be done by a Rust watcher process per project, spawned and managed by the client.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.