Zarządzanie projektami programistycznymi

0

Witam.
Nie wiem, czy to dobry dział. Raczej nie tyczy się to jednego języka, więc chyba dobrze wrzucam.

Potrzebuje nakierowania jak trzymać/organizować projekty. Wiem, że jest coś takiego jak Github, Bitbucket... itp, ale mi kontrola wersji nie jest potrzebna, ponieważ sam jeden programuje w firmie i nie zapowiada się na dodatkowego "kodownika". Z drugiej strony, albo ja coś źle robię, albo to faktycznie jest dla mnie tak uciążliwe.
Na tę chwilę trzymam wszystko tylko na dysku komputera. Mam pewne obawy, że coś przypadkiem usunę, komputer padnie, czy sam dysk twardy. Wcześniej trzymałem to na chmurze (OneDrive), ale to też nie jest jakoś super pomocne, ponieważ jeśli przypadkiem usunę to też się usunie tam. O ransomware się nie martwię, nie dostaje spamu do pracy, a też czujny jestem na podejrzane maile, czy pliki. Zresztą Windows Defender w zupełności daje sobie rade w tych czasach i nie trzeba innego syfu, ale to nie znaczy, że moja czujność nie może być uśpiona.

Czy są inne rozwiązania niż Github, czy ogólnie mówiąc kontrola wersji? Jeśli tak to jakie?
Czy moje "wymagania" zmuszają mnie do korzystania tylko z kontroli wersji? Jeśli tak to jak tego poprawnie używać? Można robić "push" przy każdym zapisie pliku w projekcie?
Czy jeśli jestem jedynym programistą w firmie to powinienem mimo to używać kontroli wersji?
Czy ma znaczenie jaki typ projektu? W większości przypadków to WinForms, ale są też projekty Flutter oraz Angular + ASP .NET Core.

PS.
Głównymi edytorami są Visual Studio oraz Visual Studio Code. Android Studio używam tylko do odpalenia wirtualki/symulatora.

2
AdamWox napisał(a):

Czy są inne rozwiązania niż Github, czy ogólnie mówiąc kontrola wersji? Jeśli tak to jakie?

Jakieś backupy, rsynci, zipowanie i wrzucanie na FTP.

Czy moje "wymagania" zmuszają mnie do korzystania tylko z kontroli wersji? Jeśli tak to jak tego poprawnie używać? Można robić "push" przy każdym zapisie pliku w projekcie?

Nie zmuszają, ale lepiej używać. Rób normalne commity.

Czy jeśli jestem jedynym programistą w firmie to powinienem mimo to używać kontroli wersji?

Tak.

Czy ma znaczenie jaki typ projektu? W większości przypadków to WinForms, ale są też projekty Flutter oraz Angular + ASP .NET Core.

Raczej nie.

0

Jeśli nie GitHub itp, to może jakiś prosty skrypt, który codziennie robi kopie folderów "source" do sieciowego zasobu, codziennie tworząc nowy folder z datą w nazwie.
Wtedy zawsze będziesz miał kopie z poprzednich dni.

0
AdamWox napisał(a):

Czy są inne rozwiązania niż Github, czy ogólnie mówiąc kontrola wersji? Jeśli tak to jakie?

Możesz protestować microsoftowego DevOpsa (https://azure.microsoft.com/pl-pl/services/devops/) - można tam zarządzać zadaniami, zgłoszeniami repozytoriami itp. Do 5 użytkowników jest za darmo. Podobnie jest z Bitbucketem (https://bitbucket.org/product/pricing). ja odradzam wszystkie wynalazki typu katalogi z wersjami i tp. Wcześniej czy później się to odbije czkawką.

Czy moje "wymagania" zmuszają mnie do korzystania tylko z kontroli wersji? Jeśli tak to jak tego poprawnie używać? Można robić "push" przy każdym zapisie pliku w projekcie?

Sam musisz sobie wypracować jak z tym pracować. Nie wiem, jak pracujesz, czy robisz np duże zmiany a w międzyczasie poprawki. Wówczas nalezało by robić branche itp. Sam musisz wypracować swój system pracy z kodem.

Czy jeśli jestem jedynym programistą w firmie to powinienem mimo to używać kontroli wersji?

Oczywiście, że tak. Jak robisz duże zmiany to co z poprawkami do aktualnej wersji? Jeśli przyjdzie ktoś, choćby na staż, to jego wdrożenie w projekt będzie prostsze.

Czy ma znaczenie jaki typ projektu? W większości przypadków to WinForms, ale są też projekty Flutter oraz Angular + ASP .NET Core.

Najgorzej w narzędziach do kontroli wersji jest z plikami binarnymi. One tylko stanowią problem. Jak takich nie masz to reszta nie ma znaczenia co to za technologia rozwiązanie itp.

0
AdamWox napisał(a):

mi kontrola wersji nie jest potrzebna, ponieważ sam jeden programuje w firmie i nie zapowiada się na dodatkowego "kodownika". Z drugiej strony, albo ja coś źle robię, albo to faktycznie jest dla mnie tak uciążliwe.

Bez względu na liczbę osób programujących i tak Ci się to przyda. Chociażby ze względu na to, że oprogramowanie będziesz mógł cofnąć do wskazanego stanu (zatwierdzenia), zamiast doszukiwać się w plikach z kodem rozwiązań, które nie podziałały i ręcznie je usuwać.

Dlatego też najlepiej byłoby to zrobić. Zacznij od lokalnego repozytorium i rozmyślaj nad skorzystaniem lub postawieniem usługi self-hosted (na przykład GitLab czy Gitea), dzięki czemu mógłbyś przechowywać kod aplikacji i jej zasoby także w zdalnych repozytoriach systemu kontroli wersji źródła oprogramowania.

0

Zarządzanie źródłami to tylko jeden z aspektów. Nawiasem mówiąc nie stanąłeś nigdy przed problemem, ze samemu się wprowadzi jakiś błąd, i tzreba szukać w przeszłości?

Inne aspekty, nawet w małej firmie to bugtracking / ewidencja pożądanych ficzerów itd... etapy na jakim są. Na typową wirtualkę z PHP to można zaproponować mantisbt. Oczywiście w małej firmie używa się w inny sposób niż w korporacji.

0

Lepiej będzie jak skorzystam z "publicznego" serwisu kontroli wersji, czy jeśli mam serwer do dyspozycji to lepiej postawić "swoje"? Nie chce nikomu udostępniać mojego kodu, ponieważ nie piszę aplikacji open source.

2

Mam dużo projektów własnych, część nawet na krótko pisana. Nie wiem jak mógłbym bez kontroli wersji żyć. Bezpieczeństwo, historia, wygoda, a nawet narzędzia do zarządzania (issues itp.).
Github i prywatne projekty to najprostsze.

0

Są jakieś "skrypty" jakie pliki ma pomijać podczas commita, czy muszę czyścić foldery z plikami .exe itp?

2

.gitignore proste i skuteczne (wbudowane w git)

0

Ok, to jeszcze jedno pytanie. Czy jest możliwość katalogowania projektów? Aplikację jakie pisze są głównie pod naszych klientów. Chciałbym w tym też mieć porządek np.:
Firma1
App1
App2
Firma2
App3
App4

1

Na github są organizacje - ale z tego co kojarze to jak z tego korzystasz to już nie możesz mieć prywatnych (chyba).

1

Na bidbucket masz projekty A w projektach repzytoria. Ja chcesz mieć lokalnie to licencja kosztuje 10 usd na rok

1

@Tomek Pycia:
Nie będę się już upierał przy lokalnych repozytoriach. Jak będzie potrzebne to kupię. Wydaje się, że bitbucket spełnia moje oczekiwania. Te projekty to jest to czego szukałem.

0

Już mam pierwszy problem. Jak mam dodać istniejącą solucję do bitbucket? Dodałem sobie wtyczkę do VS, zalogowałem się, wybieram opcję Create i tutaj zaczyna się problem...
https://imgur.com/7459ke3

Ta trzecia linia ze ścieżką mnie drażni. Nie chce tworzyć kolejnego folderu, chce wykorzystać istniejący folder z solucją. Da się w ogóle?

1

W jakim narzędziu to robisz? Ja zawsze zakładam projekt i repo na serwerze potem robie clona do katalogu gdzie mam mieć repo i potem wszystko dodaję do repo. Zrób sobie kopię, zanim zrobisz sciaganie repo do katalu gdzie już coś masz. Ja używam https://tortoisegit.org/ bo fajnie sie integruje z explorerem plików. Poszukaj te sobie jakiegoś podstawowego kursu gita tak, żeby mieć pojęcie jak z tym pracować.
DOC: https://confluence.atlassian.com/bitbucketserver/importing-code-from-an-existing-project-776640909.html

0

No właśnie nie chce kolejnego programu do dodawania tego. Tak jak pisałem wyżej, zainstalowałem wtyczkę do Visual Studio i z tego poziomu to robię. Twój sposób zadziałał, dodało mi solucję do repozytorium, ale teraz mam problem z dodaniem kolejnego repozytorium do tego samego projektu.
Team -> Projects -> Firma1 -> Add repositories
I zamiast formy mam info
All your team's repositories are already in this project. Add repositories from an individual account.

Mam rozumieć, że za darmo projekt może zawierać tylko jedno repozytorium?

1

Ta wtyczka do VS to jest g****. Mocno ograniczona. Co tam możesz poza commitowaniem i pushem? Chyba niewiele.
Zainstaluj sobie Sourcetree. Zrobisz tam prawie wszystko, masz fajny widok drzewka, integruje się to z Bitbucketem.

0

@AdamWox - A może masz w firmie jakiegoś NAS-a - Qnap czy Synology, one mają chyba w preinstalowanych pakietach min. serwer GIT. Wtedy masz wszystko bez ograniczeń, ale w lokalnej sieci firmy.

0

@Kristof: - Mam coś na wzór NAS-a, ale to nie ma dużych możliwości WD MY Cloud Personal Cloud Storage 3TB

@kzkzg
Już mnie właśnie szlak trafia... Dwa projekty mi przeszły, trzeci robi push tylko pliku .gitignore... Dlatego tyle czasu trzymałem się od tego z daleka. Czy to po prostu nie może działać? Faktycznie muszę mieć osobny program żeby na 100% wszystko poszło tak jak chce?

1

@AdamWox: Powinno działać, ale głowy nie dam. Pliki przed commitem musisz Stage'ować. Czyli jakby mówisz gitowi które pliki ma śledzić. Klikasz prawym i dajesz Stage. Robiłeś to?
Albo może masz własnie w gitignore jakiś wpis co ignoruje wszystko. Wywal tam tymczasowo wszystko i zobacz czy działa.
Ewentualnie z poziomu consoli zrob:

git add .
git commit -m nazwaCommita
git push

I zobacz czy się dodało

0

Ja ze swojej strony polecam http://gitextensions.github.io/ Tam są wszystkie funkcje, i jest dość czytelne w porównaniu z większością innych rozwiązań.

Ogólnie, co musisz mieć, to:

  1. Utworzone lokalne repozytorium gita.
  2. Utworzone repozytorium gdzieś w GH/BB/GL czy czymś.
  3. url zdalnego repozytorium trzeba dodać jako remote w repozytorium lokalnym. Można z GUI, można z konsoli.
0

Ok @kzkzg z tym SourceTree jest lepiej. Parę rzeczy poszło sprawniej. Mam jeszcze jeden, mam nadzieje, że ostatni, problem. Jak powinien wyglądać plik .gitignore jeśli robię push całej solucji? Znalazłem gita z listą różnych możliwości, dla różnych języków github/gitignore, ale ten dla Visual Studio gitignore/VisualStudio.gitignore zakłada, że plik jest w projekcie, a nie wyżej w solucji jeśli tych projektów jest więcej niż jeden.

1

Gitignore może być wiele w dowolnym miejscu hierarchii katalogów, każdy projekt może mieć swojego, ale w powyższym przypadku ten plik powinien obsłużyć całą solucję. Jakieś konkretne pliki są przez niego pominięte w Twoim przypadku?

0

To co najważniejsze pomija, commituje mi tylko 3 pliki .gitattributes, .gitignore, Backup2020.sln. Solucja zawiera 3 projekty. plik gitignore jest tam gdzie plik .sln

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