Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Git i samba. Problem z commitem.
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
sazian
Witam,
na małym serwerze mam katalog udostępniany przez sambę do którego ma dostęp wielu użytkowników.
W jednym z katalogów mam utworzone repozytorium gita. Jest tak prosty skrypt php w którym od czasu do czasu trzeba wprowadzać drobne zmiany.
Wygląda to w taki sposób że osoba która wprowadziła zmiany ma po prostu zrobić commita - nie ma tu potrzeby tworzenia "prywatnych" repozytoriów i wysyłania zmian na serwer, wystarczy mi zwykły commit.

Problem jest w tym że jeśli jedna osoba zmieni dowolny plik i zrobi commit to pozostałym osobom wszystkie pliki świecą się jako zmienione. Osoba która robiła commit nie widzi zmian w żadnym pliku, pozostali widzą że wszystkie pliki zostały zmienione. Oczywiście w pliku nie widać żadnej zmiany "w tekście".

Pliki są edytowane przez netbeansa oraz przez niego jest obsługiwany git, ale sprawa ma się podobnie jak jest to obsługiwane częściowo przez konsole.
To znaczy robię
git commit -am "coś"
git status nie pokazuje zmian

ale pozostali w netbeansie widzą wszystkie pliki zmienione.
Jeśli teraz ktoś zrobi commit przez netbeasna to jemu wszytko znika, a ja w konsoli widzę wszystkie pliki zmienione.


Ktoś ma jakiś pomysł co tu jest grane ?
nospor
Jestes w stanie odpalic tam te komende
git config core.fileMode false
?
Pyton_000
`git diff` pokaż z konsoli na "zmienionych" plikach. I też powinno wystarczyć to co @nospor podał ale lepiej się upewnić że chodzi o to co myślę smile.gif
sazian
Filemode był ustawiany,
dla projektu i w ustawieniach globalnych gita na serwerze.

Diffa sprawdzę jutro i dam znać co wyszło.

Dzięki za trop.
by_ikar
Jeżeli najpierw robisz commita a później status - to nie zobaczysz żadnych "nieśledzonych zmian", dlatego że już zmiany zapisałeś - tutaj wszystko się zgadza. Jak już to używa się tego w odwrotnej kolejności.

Cytat
Osoba która robiła commit nie widzi zmian w żadnym pliku, pozostali widzą że wszystkie pliki zostały zmienione.


masz na myśli taki scenariusz:
- zmieniasz coś przez edytor w pliku
- commitujesz go
- inni widzą zmiany
- ty ich nie widzisz, pomimo że zmieniłeś je przez edytor

Trochę dziwnie to brzmi, nie sądzisz?

Cytat
nie ma tu potrzeby tworzenia "prywatnych" repozytoriów i wysyłania zmian na serwer, wystarczy mi zwykły commit.


Nie trzeba mieć serwera. Można mieć "prywatne" repo w katalogu, może to być katalog sieciowy który będzie zdalnym repozytorium. Można to zrobić na dwa sposoby:

Kod
git clone /path/to/repo.git


lub

Kod
git remote add <nazwa> /path/to/repo.git


Z tego co ja tutaj widzę, po prostu nie do końca wiesz jak używać gita.
sazian
Dał bym sobie rękę uciąć że "core.fileMode false" było ustawione, ba nawet to w pliku konfiguracyjnym sprawdzałem.
I co ?
I bym teraz nie miał ręki sad.gif

@by_ikar wiem że to brzmi dziwnie ale naprawdę tak to wygląda.
Kolega na komputerze obok robi commit wszystkich zmian. Nawet jak teraz w netbeansie klika git->commit to nie pokazuje żadnych zmian.
Teraz ja uruchamiam netbeansa na swoim komputerze i widzę że wszystkie pliki się świecą. Dosłownie. Jak ja wybieram w netbeansie git->commit to mi również pokazuje wszystkie pliki.
Jeśli zrobiłbym tego commita wszystkich plików to dzieje się odwrotnie, ja nie mam nic do zmiany ale kolega znowu widzi zmiany we wszystkich plikach.

Zdaje sobie sprawę że git nie jest tu używany prawidłowo, ale w tym konkretnym przypadku wystarcza mi "notatka" że coś było robione. Ba nawet jak ktoś zapomni zrobić commita i później zrobi jednego zbiorczego z dwóch prac to nie ma tragedii.
by_ikar
Bardziej chodziło mi o to, że brzmi źle, bo tak zostało opisane. Teraz jak to opisujesz, to brzmi zupełnie inaczej, że bezpośrednio edytor nie widzi zmian, a nie terminal/konsola. Zobacz czy takie same problemy występują w terminalu/konsoli. Wystarczy że wpiszesz git status i jeżeli pokaże ci na jednym i drugim komputerze zmiany, ale ci ich nie pokaże w netbeansie, to znaczy że z nim jest problem (może mieć jakieś swoje własne cache czy coś).
sazian
To jeszcze tak w kwestii wyjaśnienia żeby nie było wątpliwości: fileMode pomogło.

Git status pokazywał zawsze to samo co ja widziałem.
Czyli kolega robił commit i status pokazywał wszystko do zmiany - sprawdzałem na moim komputerze przez sambe oraz bezpośrednio na serwerze z poziomu zwykłego usera i roota.
Ja robiłem commit i status pokazywał że nie ma nic do zmiany.

Podejrzewam że mogło to być spowodowane tym że windows coś psuł w uprawnieniach - wszyscy poza mną pracują na windowsie, ja mam debiana bo na tego dosa patrzeć nie mogę wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2018 Invision Power Services, Inc.