Nowy klient do gita na Windows

2
  • Kliknąłem ustawienia i wygląda na to, że zaczął ładować pasek po lewej, ale przerwał, bo rzucił błędem. W ogóle dlaczego rzucił błędem - przecież mam .gitconfig w moim %USERPROFILE%? Za drugim uruchomieniem wszystko było OK;
  • W ogóle jak się odpala ustawienia to widać, że najpierw się zmienia lewy górny róg, a potem dopiero reszta. Jak wspomiano gdzieś wcześniej - miga i jest koszmarnie niepłynne;
  • Opcja "Customize" w ustawieniach nagle zamyka wszystko i otwiera okienko modalne, trochę nieintuicyjne dla mnie, zwłaszcza, że zamykanie ustawień dzieje się bez żadnej animacji czy czegoś. Okienka modalne również bardzo słabo są widoczne (w stylu "jet", w "granite" jest znacznie lepiej), że są "na górze" głównego okna. Ikonografia też mi strasznie nie pasuje (bo niby pseudo-Modern, ale ikony z czasów Windows Vista), ale to oczywiście kwestia gustu;
  • Przyciski "save settings" i "restore settings" w ustawieniach to już w ogóle w dziwacznym miejscu są. A zauważyłem je tylko dlatego, że miałem kawałek przycisku widoczny i rozciągnąłem okienko;
  • Skąd on bierze ten avatar? Tylko generuje? Może warto dociągać z gravatar.com czy coś?

screenshot-20180723130918.png

  • Ja w ogóle jestem niemiły, bo projekt mam na przykład w katalogu E:\Marcin\!Projekty, a on próbuje we wbudowanym terminalu do niego przejść i niestety znak ! mu psuje (i co za tym idzie niewiele funkcji programu w ogóle działa):

screenshot-20180723131108.png

  • A może by tak powiedzieć, co to za operacja, a nie mi lata pasek postępu a ja tylko kliknąłem "remotes"? I to latała dobrą minutę zanim przerwałem, pewnie próbował się połączyć z serwerem, a jeden z moich remote już nie działa ;-)

screenshot-20180723131221.png

  • A czy mogło by nie startować na pełnym ekranie za każdym razem?;
  • Może jakaś zliczarka znaków w temacie i opisie commita? Bo tak to ciężko powiedzieć gdzie moje 70 znaków w linii. Można też pomyśleć nad sprawdzaniem pisowni w tym miejscu;
  • Kiedy mam dane, które będą utracone przy przełączeniu gałęzi (np. nie zrobiłem commita) i próbuję się przełączyć na inną gałąź tylko mi przelatuje komunikat w konsoli, że tak nie wolno, ale program w żaden sposób tego nie sygnalizuje - po prostu "nic się nie dzieje";
  • Klikam prawym na gałęzi, wybieram "delete", pojawia się okienko w którym ta gałąź nie jest zaznaczona i muszę jeszcze raz ją wybrać.
  • Obsługa checkout do pewnego commita/tagu?
  • A może by tak akcja otwarcia zaznaczonego pliku w oknie "Active repository" w jego domyślnej aplikacji?
  • Format daty w historii - dlaczego akurat taki (wiem, wiem)? Może można by jakoś dostosować (albo skorzystać z ustawień regionalnych systemu)?
  • Po co w ustawieniach jest opcja "Create new branch"?
  • Opcja "Create default .gitignore" tworzy plik ignorowania dla jakiego środowiska/języka?

Ogólnie: aplikacja mi się podoba, dobra robota, trochę błędów i drobnych niedociągnięć zostało do poprawy :-)

0

Co do ikonografii rodem z visty:

thumb.png

GitAtomic nie poszedl ta droga

0

@Ktos,
Czesc, fajnie ze Ci sie podoba i dzieki za uwagi.
Moze zaczne odpowiadac na Twojego posta od tylu (odpowiem tez tylko na wybrane punkty, punkty, ktore pominalem generalnie mozna rozumiec, jako, design/feature/GitAtomic specific):

  1. Opcja "Create default .gitignore" tworzy plik ignorowania dla jakiego środowiska/języka?
    VS/C++, dobre pytanie. Po Twoim komentarzu dodam w Releasie, zeby user mogl sobie wybrac srodowisko/jezyk dla ktorego stworzyc gitignore, dodam tez opcje zeby mozna bylo po prostu gitignore zaimportowac z wybranej lokacji
  2. Format daty:
    Zgadzam sie z Toba, jak najbardziej, w Releasie bedzie mozna sobie wybrac format daty wedle uznania
  3. A może by tak akcja otwarcia zaznaczonego pliku w oknie "Active repository" w jego domyślnej aplikacji?
    Nie do konca wiem co masz na mysli, prosilbym o sprecyzowanie
  4. Obsługa checkout do pewnego commita/tagu
    Yep, good point, Zaimplementuje to i w Releasie bedzie taka funkcjonalnosc
  5. Klikam prawym na gałęzi, wybieram "delete", pojawia się okienko w którym ta gałąź nie jest zaznaczona i muszę jeszcze raz ją wybrać.
    By design, Docelowo GitAtomic bedzie mial dwa tryby, tzw expert, w ktorym nie bedziesz pytany zeby potwierdzic jakiekolwiek akcje and regular, w ktorym dla bezpieczenstwa bedziesz pytany o akcje, ktore potencjalnie sa niebezpieczne. W tym drugim trybie, zeby uniknac ciaglego pytania, jak bedziesz mial przycisniety Ctrl to tez nie bedziesz pytany, taki "one time expert"
    6.Kiedy mam dane, które będą utracone przy przełączeniu gałęzi (np. nie zrobiłem commita) i próbuję się przełączyć na inną gałąź tylko mi przelatuje komunikat w konsoli, że tak nie wolno, ale program w żaden sposób tego nie sygnalizuje - po prostu "nic się nie dzieje";
    Good point, Zrobie tak zeby komunikat wyswiatlal taka informacje
    7.Może jakaś zliczarka znaków w temacie i opisie commita? Bo tak to ciężko powiedzieć gdzie moje 70 znaków w linii. Można też pomyśleć nad sprawdzaniem pisowni w tym miejscu;
    Sprawdzanie pisowni, jak najbardziej, bedzie zaimplementowane ale nie moge obiecac, ze to stanie sie w pierwszym releasie, ale jest zalogowane jako high priority
    8.A czy mogło by nie startować na pełnym ekranie za każdym razem?;
    Jasne, no problem, Release bedzie to mial zaimplementowane
  6. A może by tak powiedzieć, co to za operacja, a nie mi lata pasek postępu a ja tylko kliknąłem "remotes"
    Jak najbardziej, mam to juz u siebie na liscie, ale dobrze wiedziec, ze wiecej osob tak mysli. Release bedzie to mial
  7. Ja w ogóle jestem niemiły, bo projekt mam na przykład w katalogu E:\Marcin!Projekty
    Terminal w GitAtomic uzywa basha, jesli bash Ci tego nie lyknie to terminal tez nie.
  8. Skąd on bierze ten avatar? Tylko generuje? Może warto dociągać z gravatar.com
    Avatary sa pobierane z gravatar.com. Widocznie byl jakis problem na lini i nie pobral Twojego.

Jeszcze raz dzieki za uwagi, sugestie i oczywiscie Twoj czas. Naprawde to doceniam.
Dzieki takim ludziom jak Ty, GitAtomic staje sie coraz lepszym i dojrzalym softem.

Dziekuje i pozdrawiam
Artur

0

Co do 3:

screenshot-20180723150638.png

IMO przydała by się opcja "open", aby ten plik po prostu... otworzyć :-)

Co do 5:

Ok, rozumiem, ale to nadal proponuję jedną rzecz. Obecnie jak klikniesz "delete" na branchu to w okienku (które jak rozumiem może służyć do potwierdzania, i nie mam z tym problemu) branch na którym kliknąłem nie jest domyślnie wybrany:

screenshot-20180723150823.png

Co do 7:

bashowi to nie przeszkadza. Twój program tutaj ma problem we współpracy z bashem, bo próbuje zrobić:

$   cd /e/Marcin/!Projekty/AccelApp/
bash: !Projekty/AccelApp/: event not found

A powinien zrobić:

$   cd /e/Marcin/\!Projekty/AccelApp/
0

Na początku chciałem podziękować @somedev, @somekind and @Ktos za sugestie i uwagi związane z wcześniejszym releasem GitAtomic.

Dzięki panowie, większość z waszych sugestii została zaimplementowana.
Jako, że GitAtomic zdobywa na popularności i jest używany przez coraz większą liczbę użykowników zarówno prywatnych jak i komercyjnych, jest mi niezmiernie miło poinformować was, że najnowszą wersję ze zmianami zasugerowanymi przez was jak też innych użytkowników można pobrać pod:

https://marketplace.visualstudio.com/items?itemName=GitAtomic.GitAtomic

P.S.
Zachęcam do pobierania i testowania jak też zgłaszania uwag i sugestii.

Jeszcze raz dziękuję za wasz wkład i pomoc.
Artur Czajkowski

1

Żeby nie było, że tylko krytykuję - to fajnie, że masz jakiś swój gotowy i działający projekt, którym możesz się pochwalić. Podziwiam wytrwałość i chęci.
Ale w tym poście skupię się na wyjaśnieniu, czemu nie mam zamiaru go używać - wybacz.

Super light - at least three times lighter than any other GUI Git client.

No nie wiem, u mnie jest najwyżej dwa razy. I to w ogóle nie ma praktycznego znaczenia.

Fully interactive adjustable Git tree - see as much or as little information as you need.

Próbowałem poukładać sobie tak, żeby GUI miało dla mnie sens. Stanęło na czymś takim:

screenshot-20181128023119.png

Nie jest to to, czego potrzebuję, ale lepiej się nie da. Nie wiem po co mi takie ogromne elementy GUI dotyczące gałęzi czy commitów. Po co te wielkie ikonki przy nich? To tylko marnuje miejsce na ekranie. Dla porównania:

screenshot-20181128023231.png

Tu jest znacznie więcej informacji. Od razu widzę dużo gałęzi, widzę jak się przeplatają i które commity zawierają, widzę też znacznie więcej commitów. Menu zajmuje mało, eksponowane są informacje istotne - czyli zmiany.

Advanced search function - find any commit based on any criteria and find it fast.

Nie jest fast - muszę wywoływać oddzielne okienko do tego.

Unique ultra-flexible staging capabilities - stage individual hunks, lines or a mixture of both simultaneously.

Wcale nie jest unique. W GitExtensions nie ma z tym problemu:

screenshot-20181128023303.png

Modern User Interface - makes you more productive.

Jak dla mnie, to to "modern" zajmuje tylko miejsce na ekranie. To, co by zwiększało produktywność, to skróty klawiaturowe i przyspieszona analiza zmian oraz historii.

W GitExtensions wystarczy zaznaczyc dwa commity, aby program automatycznie zaprezentował zmiany między nimi. U Ciebie? Nawet nie wiem jak jakieś porównywanie uruchomić.
Podobnie blame. Dla mnie to taka funkcja, która pokazuje kto i kiedy wprowadził jakieś zmiany. Powinna wyglądać tak:

screenshot-20181128023338.png

A u Ciebie otwiera się jakaś zakładka z listą hashy i autorów. Jakby nie rozumiem.

No i jeszcze jedno. Nawet na FullHD nie mieszczą mi się opcje na ekranie (pojawiają się scrollbary), za to jest sporo zmarnowanej przestrzeni:
screenshot-20181128023536.png

0

@somekind
Pozwól, że się odniosę:

[1]
"Super light - at least three times lighter than any other GUI Git client."

No nie wiem, u mnie jest najwyżej dwa razy.

  1. Kwestia OS, memory type, i innych czynników. U mnie jest conajmniej trzy, u Ciebie najwyżej dwa. Spoko. Tak czy inaczej GitAtomic jest najlzejszym klientem z GUI dostepnym na rynku.
    To samo repo, UnrealEngine, ta sama liczba commitow (1000):
    GitAtomic 60Mb
    GitExtension 200Mb

rozmiar.png

I to w ogóle nie ma praktycznego znaczenia.

Uhmm... wrong.
Im program mniejszy tym lepiej z wielu względów:

  1. Działa szybciej.
  2. Mniej obciąża system.
  3. Szybciej się uruchamia
  4. Jest mniej tzw. "page faults" co z kolei przeklada sie na performance zarowno programu jak i OS.

Powodow mozna wymieniac i wymieniac.

Tak, że nie zgodzę się z Tobą kiedy mówisz ze rozmiar programu nie ma praktycznego znaczenia, bo praktyczne znaczenie ma i to duze, i to generalnie jest powszechnie uznana opinia i stosowana praktyka zeby
soft był jak najlzejszy, więc dla Ciebie może nie mieć zadnego znaczenia, natomiast dla wiekszości(zarówno twórców jak i uzytkowników) ma.

[2]

Próbowałem poukładać sobie tak, żeby GUI miało dla mnie sens. Stanęło na czymś takim[...]
Nie jest to to, czego potrzebuję, ale lepiej się nie da.

GitAtomic pozwala ja jakikolwiek layout, a to, ze Ty nie potrafisz tego wykorzystac? Sorry, no comments...

layout.png

[3]

W GitExtensions wystarczy zaznaczyc dwa commity, aby program automatycznie zaprezentował zmiany między nimi. U Ciebie? Nawet nie wiem jak jakieś porównywanie uruchomić.

W GitAtomic tez wystarczy zaznaczyc dwa commity, aby program zaprezentował zmiany między nimi. To ze nie wiesz jak uruchomic jakas opcje (zwlaszcza ze wystarczy zrobic right click), sorry...
[4]

Wcale nie jest unique. W GitExtensions nie ma z tym problemu:

W GitExtensions nie mozesz robic tak zaawansowanego 'stageingu' na jaki pozwala Ci GitAtomic.
Zakladajac sytuacje ze masz plik z diffem i ten plik zawiera trzy hunki i kazdy z tych hunkow zawiera powiedzmy piec linii
W GitExtensions nie mozesz, za jednym razem, czyli wszystkie operacje, ktore teraz opisuje wykonac wybierajac elementy ktore chcesz zestagowac i nacisnac opcje stage:
Zrobic stage z hunku numer 1
Zrobic stage z hunku numer 2 ale tylko linii 3 i 5 pozostawiajac linie 1, 2, 4 'niezestagowane'
zrobic stage z hunku 3 ale tylko linii 4

Polecam obejrzenie:

Sproboj to samo zrobic w GitExtensions. Powodzenia.

[5]

To, co by zwiększało produktywność, to skróty klawiaturowe i przyspieszona analiza zmian oraz historii.

GitAtomic pozwala na zdefiniowanie jakichkolwiek skrótów klawiaturowych, daje Ci możliwosc analizy zmian oraz historii. GitAtomic pozwala na duzo wiecej rzeczy niz GitExtensions. Trzeba tylko chciec poznac program, a nie odpalic na 10-15 minut, walnąc focha bo nie wyglada tak jak ten, którego teraz uzywam, nie ma w tym miejscu opcji ktore ma ten ktorego teraz uzywam, i na tej podstawie stwierdzic ze programu nie bede uzywal. Whatever floats your boat dude.

8
Artur77 napisał(a):

Uhmm... wrong.
Im program mniejszy tym lepiej z wielu względów:

  1. Działa szybciej.
  2. Mniej obciąża system.
  3. Szybciej się uruchamia
  4. Jest mniej tzw. "page faults" co z kolei przeklada sie na performance zarowno programu jak i OS.
  1. A co do tego ma ilość pamięci? Spora część optymalizacji oprogramowania sprowadza się do poprawy złożoności czasowej kosztem złożoności pamięciowej. Klient git na pewno musi mieć takie optymalizacje.
  2. to raczej liczba wywołań systemowych obciąża system, a nie ilość pamięci.
  3. Ile razy w tygodniu uruchamiam git-extentions albo source tree? Maksymalnie RAZ, bo mam je uruchomione bez przerwy, system wyłączam czasem na weekend. Jakie więc dla mnie ma to znaczenie jak szybko się uruchamiają te aplikacje? Żadne! Dopóki aplikacja jest stabilna (nie crashuje się) to będzie u mnie uruchomiona w nieskończoność.
  4. chyba miałeś na myśli "cache miss", bo "page faults" oznacza albo crash aplikacji, albo aktywację COWS

Za bardzo skupiłeś się na optymalizacjach, gdy tymczasem krytyka @somekind jest skupiona na funkcjonalności, jej dostępności oraz optymalnej organizacji UI.

Artur77 napisał(a):

W GitExtensions nie mozesz robic tak zaawansowanego 'stageingu' na jaki pozwala Ci GitAtomic.

Nie wiem co masz na myśli. W GitExtensions to wszystko jest.
Do indeksu mogę dodawać/usuwać wszystko na raz, pojedyncze pliki, fragmenty plików, albo pojedyncze linie.
Tak samo można rezygnować ze zmian.
Zaznaczasz wymagany fragment w diff-ie i naciskasz "s" (od "Stage"), albo "Stage selected lines" z menu menu kontekstowego.
"r" na reset "u" na unstage.
Czego chcieć więcej?

Artur77 napisał(a):

GitAtomic pozwala ja jakikolwiek layout, a to, ze Ty nie potrafisz tego wykorzystac? Sorry, no comments...
W GitAtomic tez wystarczy zaznaczyc dwa commity, aby program zaprezentował zmiany między nimi. To ze nie wiesz jak uruchomic jakas opcje (zwlaszcza ze wystarczy zrobic right click), sorry...

To, że doświadczony (w konkurencyjnych programach) użytkownik nie wie jak użyć jakiejś standardowej opcji to nie jego problem, ale "sorry.." to twój problem.
Znaczy, ze w UI coś nie jest dostatecznie oczywiste dla użytkownika, albo coś nie działa jak należy.
Reakcja obronna nic ci nie da. Trzeba zrozumieć problem i szukać jego rozwiązania. Chyba po to założyłeś wątek?

6
Artur77 napisał(a):

Tak, że nie zgodzę się z Tobą kiedy mówisz ze rozmiar programu nie ma praktycznego znaczenia, bo praktyczne znaczenie ma i to duze, i to generalnie jest powszechnie uznana opinia i stosowana praktyka zeby
soft był jak najlzejszy, więc dla Ciebie może nie mieć zadnego znaczenia, natomiast dla wiekszości(zarówno twórców jak i uzytkowników) ma.

Nie ma znaczenia, czy program zajmuje 1 MB czy 100MB, bo to jest i tak mniej niż 1% całkowitej pamięci.
Nie ma znaczenia, czy operacja zajmuje 5ms czy 50ms, bo i tak nie da się tego zauważyć.
Jako użytkownika nie interesują mnie rzeczy, których nie jestem w stanie zaobserwować podczas normalnej pracy, a które widoczne są jedynie w jakichś sztucznych testach. Żeby docenić to, że Twój program zajmuje mniej zasobów niż GitExtensions musiałbym chyba pracować na maszynie z 256-512MB pamięci. Nigdy nie będę tego robił, więc nie ma to praktycznego znaczenia.

GitAtomic pozwala ja jakikolwiek layout, a to, ze Ty nie potrafisz tego wykorzystac? Sorry, no comments...

Bez komentarza to należy pozostawić Twoje marne zdolności do zachęcania potencjalnych użytkowników.

Jak to się pięknie wiąże z poprzednim punktem. Na eksperymentowanie z ustawieniem sobie layoutu stracę wielokrotnie więcej czasu niż kiedykolwiek zyskam dzięki lekkości Twojego rozwiązania. :)

W GitAtomic tez wystarczy zaznaczyc dwa commity, aby program zaprezentował zmiany między nimi. To ze nie wiesz jak uruchomic jakas opcje (zwlaszcza ze wystarczy zrobic right click), sorry...

Sam sobie przeczysz, skoro trzeba gdzieś klikać PPM, to znaczy, że nie wystarczy zaznaczyć. Cztery kliknięcia zamiast dwóch to jest DWA razy więcej pracy, a ponieważ to jest najczęściej wykonywana operacja, to strata czasu nigdy nie zostanie zrekompensowana "lekkością programu".

W GitExtensions nie mozesz robic tak zaawansowanego 'stageingu' na jaki pozwala Ci GitAtomic.
Zakladajac sytuacje ze masz plik z diffem i ten plik zawiera trzy hunki i kazdy z tych hunkow zawiera powiedzmy piec linii
W GitExtensions nie mozesz, za jednym razem, czyli wszystkie operacje, ktore teraz opisuje wykonac wybierajac elementy ktore chcesz zestagowac i nacisnac opcje stage:
Zrobic stage z hunku numer 1
Zrobic stage z hunku numer 2 ale tylko linii 3 i 5 pozostawiajac linie 1, 2, 4 'niezestagowane'
zrobic stage z hunku 3 ale tylko linii 4

No fakt - nie zrobię tego, bo w GitExtensions nie istnieje chyba w ogóle pojęcie "hunku", a każdą linijkę (albo kilka linijek) staguję oddzielnie. Efekt dla repozytorium (a więc z punktu widzenia użytkownika) dokładnie ten sam, a ja nie widzę jakoś obiektywnego zysku z klikania w przyciski w innej kolejności.

Sproboj to samo zrobic w GitExtensions. Powodzenia.

Zrobiłem jakieś kilka tysięcy razy przez ostatnie 8 lat. ;)

GitAtomic pozwala na zdefiniowanie jakichkolwiek skrótów klawiaturowych

No wspaniale, tylko po raz kolejny zrzucasz na użytkownika jakąś konfigurację, która powinna być dostępna od razu.

GitAtomic pozwala na duzo wiecej rzeczy niz GitExtensions.

Mam wrażenie, że nie znasz GitExtensions, a po prostu napisałeś program, który spełnia Twoje wymagania względem funkcjonalności oraz GUI, więc masz takie czysto subiektywne wrażenie, że możesz więcej osiągnąć przez GitAtomic.

Trzeba tylko chciec poznac program, a nie odpalic na 10-15 minut, walnąc focha bo nie wyglada tak jak ten, którego teraz uzywam, nie ma w tym miejscu opcji ktore ma ten ktorego teraz uzywam, i na tej podstawie stwierdzic ze programu nie bede uzywal. Whatever floats your boat dude.

To, że Ty umiesz ustawić, to nie jest nic dziwnego, bo Ty jesteś autorem, robiłeś program pod siebie, a więc Tobie wszystko wydaje się oczywiste i intuicyjne. Ale Twój i wyłącznie Twój problem jest w tym, żeby użytkownicy też umieli tego używać. Bez czytania instrukcji, bez tracenia czasu na konfiguracje, zgodnie z zasadą "don't make me think".

Może i GitAtomic faktycznie więcej potrafi, ale tak długo, jak nie jest to bardziej intuicyjne niż u konkurencji, to nie ma z nią szans. Wchodzisz na rynek, na którym istnieje już masa rozwiązań, do których ludzie są przyzwyczajeni. Jak chcesz ich przekonać do przejścia na swój produkt? Zamiast pisać o wydajności lepiej gdybyś np. przygotował zestaw predefiniowanych layoutów aplikacji, które wystarczy wybrać z menu, aby upodobnić program do innego znanego rozwiązania? (Zresztą, zdaje się, że któryś inny klient, może nawet Source Tree ma ficzer łatwej zmiany widoków.) Skoro elastyczność layoutu jest taką zaletą Twojego programu, to czemu w ogóle z tego nie korzystasz, przerzucając cały ciężar na użytkownika? Podobnie ze skrótami klawiaturowymi - są, ale nie ma.

0

@Artur77: odnosnie wydajnosci porownywales swojego toola z gitAtomic albo pluginem do Intellij/Eclipse ?
Skoro piszesz ze ejst lzejszy niz wszystko inne fajnie byloby to udokumentowac.

1 użytkowników online, w tym zalogowanych: 0, gości: 1