SVN vs GIT

0

Witam,
Zastanawia mnie, czy jakiś z tych dwóch systemów kontroli wersji jest na tyle dobry, że można powiedzieć że we większości zastosowań wyparł ten drugi?

Wydaje mi się, że główna różnica z punktu widzenia użytkownika jest następująca:

  1. W gicie najpierw robi się commit lokalny, a następnie zdalny.
  2. Git jest szybszy niż SVN.
  3. Git zużywa mniej HDD.
  4. SVN posiada lepszą kontrolę nad rolami.
  5. SVN posiada bardzo wygodne narzędzia np. TortoiseSVN.

Czym kierować się przy wyborze systemu kontroli wersji?

edytowany 1x, ostatnio: Adam Boduch
M9
Git zużywa więcej HDD. Każdy commit to kopia, a nie diff jak w przypadku SVN.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 2 godziny
0

SVN posiada lepszą kontrolę nad rolami.

Tzn?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

Na stronie GITa w porównaniu z SVN znalazłem, że pod tym względem system konkurencyjny jest lepszy tzn. większe możliwości ustawianie uprawnień, kont, kontroli i współdzielenia zasobów niż system konkurencji.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 2 godziny
3
  1. Nie odczuwam potrzeby posiadania TortoiseXXX ani niczego w tym rodzaju - IDE z których korzystam mają sensowną obsługę XXX.
  2. Sprawdź jakie dokładnie są różnice w tej kontroli uprawnień i na postawie tego zdecyduj.
  1. W gicie najpierw robi się commit lokalny, a następnie zdalny.

Niet. Commit to commit, a push to wysłanie zmian do zdalnego repo, a nie zdalny commit.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

Tak zrobię, dzięki.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
8

Ech systemy 3 generacji (np. git) są lata świetlne przed tymi wcześniejszymi (np. svn). Czemu?

  1. Dwupoziomowe commity. Wyobraź sobie że wprowadzasz poprawki do jakiegoś kodu w pracy. Kod jest skomplikowany i fajnie byłoby commitować małe fragmenty żeby łatwo było potem się wycofać ze zmian. SVN na to nie pozwoli, bo commit może lecieć tylko do głównego repozytorium (a tego zrobić nie możesz bo popsujesz wszystkim innym buildy). Możesz zrobić branch, ale potem drugie tyle czasu zejdzie na merge. Systemy 3 generacji pozwalają commitować do zdalnego repozytorium a dopiero cały działający kod wrzucić do głównego streamu.
  2. Zmiany w kodzie zapisywane jako change-set a nie jako kolejna wersja pliku. Dzięki temu jeśli 2 osoby modyfikują ten sam plik i każda z nich doda sobie swoją metodę to system 3 generacji automatycznie to sobie scali bo widzi że te zmiany nie konfliktują. SVN oczywiście będzie wymagał ręcznego scalania, bo dla niego diff pokazuje konflikty. Drugą zaletą tego rozwiązania jest możliwość wycofywania change-setów. Wyobraź sobie że przez 3 dni scalałeś kody z różnych branchy, a na koniec okazało się że Mietek w swoim coś popsuł (a jego oczywiście scalałeś jako pierwszy) ale poprawka zajmie mu kilka dni. W SVNie masz tylko możliwość reverta do sytuacji sprzed całego scalania...

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
rincewind
U mnie w firmie kazdy team wprowadzajac nowa funkcjonalnosc tworzy nowego brancha. Dopoki nie przeszlismy z SVN na GIT-a, mielismy 3-tygodniowe sprinty, w ktorych rzeczywista funkcjonalnosc byla wprowadzana przez pierwsze 2 tygodnie, a caly trzeci tydzien to mergowanie i walka z konfliktami (w tym tree conflict, co jest masakryczne). Od czasu GIT-a, skrocilismy sprinty do 2 tygodni. :D
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

Na GIT możesz pracować lokalnie - to chyba największy plus.
Aktualizuję sobie soft lokalnie ile wlezie (mam kolejne wersje) a dopiero gdy przekompiluję całość i przetestuję wrzucam na publiczne repozytorium.
AFAIK na SVN tego nie zrobisz albo będzie to upierdliwe.

DR
  • Rejestracja:około 9 lat
  • Ostatnio:około 9 lat
  • Postów:3
0

Witam wszystkich z 4programmers. Wiem, archeologia. Minęły ponad trzy lata. :D Czy z obecnej perspektywy rozwoju SVN (na dzisiaj 1.9.3) opisane bolączki SVN nadal występują w nowszych wersjach? U nas praca będzie odbywała się w praktyce tylko lokalnie. Więc zaleta rozproszonej pracy GIT'a nie jest tak wielka z mojego punktu widzenia.

Shalom napisał(a):

Ech systemy 3 generacji (np. git) są lata świetlne przed tymi wcześniejszymi (np. svn). Czemu?

  1. Dwupoziomowe commity. Wyobraź sobie że wprowadzasz poprawki do jakiegoś kodu w pracy. Kod jest skomplikowany i fajnie byłoby commitować małe fragmenty żeby łatwo było potem się wycofać ze zmian. SVN na to nie pozwoli, bo commit może lecieć tylko do głównego repozytorium (a tego zrobić nie możesz bo popsujesz wszystkim innym buildy). Możesz zrobić branch, ale potem drugie tyle czasu zejdzie na merge. Systemy 3 generacji pozwalają commitować do zdalnego repozytorium a dopiero cały działający kod wrzucić do głównego streamu.
  2. Zmiany w kodzie zapisywane jako change-set a nie jako kolejna wersja pliku. Dzięki temu jeśli 2 osoby modyfikują ten sam plik i każda z nich doda sobie swoją metodę to system 3 generacji automatycznie to sobie scali bo widzi że te zmiany nie konfliktują. SVN oczywiście będzie wymagał ręcznego scalania, bo dla niego diff pokazuje konflikty. Drugą zaletą tego rozwiązania jest możliwość wycofywania change-setów. Wyobraź sobie że przez 3 dni scalałeś kody z różnych branchy, a na koniec okazało się że Mietek w swoim coś popsuł (a jego oczywiście scalałeś jako pierwszy) ale poprawka zajmie mu kilka dni. W SVNie masz tylko możliwość reverta do sytuacji sprzed całego scalania...
edytowany 1x, ostatnio: drastic
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:3 dni
  • Lokalizacja:Wrocław
4

Co rozumiesz przez "lokalnie"? Bez sieci? Bez centralnego serwera?

Z wyjątkiem tendencji masochistycznych albo poszanowania dla tradycji i technologii rodem z XIX wieku, nie ma żadnych powodów, aby używać SVN, bez względu na wielkość zespołu.

edytowany 2x, ostatnio: somekind
DR
  • Rejestracja:około 9 lat
  • Ostatnio:około 9 lat
  • Postów:3
0

Haha, mam na myśli openspace bez zdecentralizowanego środowiska programistów pracujących w różnych lokalizacjach.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 19 godzin
0

git ma denerwujący commandline. dlaczego gdy próbuję wyświetlić brancze na remocie to zamiast tego mi tworzy branczę o nazwie takiej jak remote? :-) którą potem nie wiadomo jak usunąć bo jest "ambiguous object name"? dlaczego usunięcie branczy to git branch -d ale remote'a git remote rm? dlaczego, dlaczego, dlaczego...

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:12 minut
  • Postów:8401
0

Po jakimś czasie można się przyzwyczaić do commandline'a, a dziwne polecenia zapamiętać, ew. ściągnąć jakąś nakładkę graficzną.

Tym niemniej jak się wie co się robi, i jak działają gałęzie, i zna się różne przydatne polecenia to można wyczyniać cuda. Nie wiem po co ktoś miałby wracać do SVN.

U nas praca będzie odbywała się w praktyce tylko lokalnie. Więc zaleta rozproszonej pracy GIT'a nie jest tak wielka z mojego punktu widzenia.

Lokalnie to by było przy jednym komputerze. Jeśli siedzicie na jednym openspejsie to też wasza praca jest do pewnego stopnia rozproszona. Mając Gita jest ta zaleta, że na każdym kompie jest backup, na każdym kompie ktoś może zrobić sobie z 10 gałęzi na własne potrzeby, albo przeglądać historię do woli...

systemy scentralizowane jakoś w ogóle mi nie pasują do pracy zespołowej. Z drugiej strony do pracy w pojedynkę też nie pasuje system scentralizowany, bo po co odpalać serwer SVN, jeśli wystarczy zrobić git init i każdy katalog może stać się repo...


edytowany 1x, ostatnio: LukeJL
DR
  • Rejestracja:około 9 lat
  • Ostatnio:około 9 lat
  • Postów:3
0

Dzięki za odpowiedzi. :-)

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:3 dni
  • Lokalizacja:Wrocław
0
Azarien napisał(a):

git ma denerwujący commandline. dlaczego gdy próbuję wyświetlić brancze na remocie to zamiast tego mi tworzy branczę o nazwie takiej jak remote?

To niesamowite, że udało Ci się coś takiego osiągnąć. Nie sądzę, żeby komukolwiek, kiedykolwiek coś takiego się przydarzyło.

dlaczego usunięcie branczy to git branch -d ale remote'a git remote rm? dlaczego, dlaczego, dlaczego...

Składnia poleceń gita nie jest spójna, ale z drugiej strony, stosowanie konsoli nie jest obowiązkowe.

0

ogolnie to chyba dopiero niedawno git przescignal svn w sensie używania go? bo zanim się przeskoczy na inny system kontroli wersji to może zająć trochę czasu.
Więc ogólnie chyba dalej svn jest dość często używany ?

ja wole gita , ale są też stronki co udowadniaja co innego ;)
https://svnvsgit.com/

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:3 dni
  • Lokalizacja:Wrocław
7
Złoty Młot napisał(a):

ogolnie to chyba dopiero niedawno git przescignal svn w sensie używania go? bo zanim się przeskoczy na inny system kontroli wersji to może zająć trochę czasu.
Więc ogólnie chyba dalej svn jest dość często używany ?

Jest używany, jeszcze długo będzie, i pewno nigdy nie przestanie. Za wybór systemu kontroli wersji odpowiadają zazwyczaj "doświadczeni" ludzie, a że spora część z nich jest tłukami, która dawno przestała się rozwijać, to wybierają najnowszą technologię z początku ich kariery, czyli SVN. Git jest w końcu zbyt nowoczesny (10 lat to przecież chwila).

ja wole gita , ale są też stronki co udowadniaja co innego ;)
https://svnvsgit.com/

Ciekawe bardzo.

  1. Pierwsze słyszę, aby ktokolwiek twierdził, że repozytoria Gita są mniejsze. No, ale niech im będzie, walka z samodzielnie wymyślonym wrogiem jest łatwiejsza.
  2. Branch w SVN jest operacją ZDALNĄ, więc czas jego wykonania zależy od połączenia z netem. Jak pracujesz w banku, do którego się łączysz przez VPN, a serwer stoi na jakiejś słabej VMce, to branchowanie trwa minuty. Nie wspominając już o tym, że jak nie masz sieci, to nie zrobisz brancha.
  3. W projektach korzystających z SVN raczej był zakaz stosowania jakichś "magicznych" rozwiązań, zawsze musiałem wybierać startowe rewizje. Widać SVNowi devopsi słabo wierzą w jego możliwości. Ale to naprawdę nie jest problem. Problemem jest to, że SVN w ogóle nie potrafi mergować.
  4. Trzeba jeszcze mieć wersję 1.7 i zmigrowane do niej repozytorium. A jak klient tego nie potrzebuje, bo dla niego to tylko zbędne koszty, to programista się musi męczyć.
  5. Patrz pkt. 1.
  6. Tu już przywalili jak łysy grzywką o parapet...
    a) no access control - no tak, bo użytkownicy SVN to dzieci, które wymagają opieki. Profesjonaliści nie mają takich problemów.
    b) full copy of repository on every computer - to raczej główna zaleta niż wada. Tylko SVNowiec mógł wpaść na pomysł, że to źle, bo oni wszak lubują się w ogromnych repozytoriach, zawierających tysiące oddzielnych aplikacji. Profesjonaliści nie mają takich problemów.
    c) no exclusive files locks - to naprawdę straszne, że nikt nie może mi zabronić edytowania pliku. Jak się pisze klasy na 10 tysięcy linii kodu to faktycznie może być problem. Ponownie - profesjonaliści nie mają takich problemu.
  7. Ciekawe jak działają duże repozytoria SVN, zwłaszcza gdy przeglądamy historię w poszukiwaniu zmiany, która coś zepsuła. Ciekawe swoją drogą, czy SVNowcy słyszeli np. o mikroserwisach.
  8. Problem natury higienicznej. Jeśli używa się zdrowego rozsądku i racjonalnego podejścia do pracy, to nie występuje. No, ale to rzeczy chyba nieznane w świecie SVN.
  9. To fakt - nie zawsze. 95% to nie jest zawsze.
  10. No to fakt, Gita trzeba się nauczyć. Nie tylko obsługi, ale też jego filozofii i podejścia do pracy. A, że SVNowcy tego nie robią, to wiecznie narzekają.
  11. Kolejny problem natury higienicznej. Nie zmienia się nazwy pliku i jego zawartości jednocześnie, trzeba to podzielić na dwa commity. No, ale jak mieliby to zrozumieć SVNowcy, którzy robią góra jeden commit dziennie.
  12. To nie jest problem związany z kontrolą wersji, bo po prostu nie przechowuje się tajnych informacji razem z kodem. Do tego celu służy konfiguracja serwera CI, do której dostęp mają dostęp tylko admini.
  13. Jeśli jedna osoba pracuje nad niemerdżowalnym zasobem, to inne go nie ruszają. Nie trzeba do tego zaawansowanego systemu uprawnień, wystarczy użycie mózgu, a potem ust albo np. maila. Generalnie komunikacja to podstawa w pracy.

Szkoda, że nie obalili "mitów" z konfliktem wersji na identycznej linijce dodanej w dwóch różnych gałęziach, z koniecznością pracy zdalnej, z niemożnością przeglądania historii bez połączenia z internetem...

Cały "problem" wynika z tego, że zatwardziali SVNowcy, którzy są przyzwyczajeni do niewygody i powolnego działania, do robienia jednego commita na tydzień i do ciągłego rozwiązywania fałszywych konfliktów, nigdy nie zrozumieją, że system kontroli wersji to narzędzie dla programisty. Nie dla zespołu, nie dla managera, nie dla administratora, nie dla gościa od deploymentu, ale dla programisty. Dlatego nie rozumieją narzędzia, które daje programiście wolność organizacji pracy; które pozwala na zapisanie swojego dotychczasowego toku myślenia, a następnie go porzucenie w celu wypróbowania różnych sposobów rozwiązania problemu; które daje możliwość powrotu do poprzedniego pomysłu bez tracenia całodziennej pracy.
Z tego samego powodu, poziom recydywy wśród osób odsiadujących wieloletnie wyroki jest taki duży. Oni także nie rozumieją wolności, po wyjściu z więzienia nie potrafią się odnaleźć w nowej sytuacji, więc znowu popełniają przestępstwo, żeby do więzienia wrócić, bo tylko w znanym sobie miejscu czują się bezpiecznie.

edytowany 1x, ostatnio: somekind
KA
somekind Linux , który to GITa napisał byłby z Ciebie dumny
somekind
Linux napisał Gita... Ciekawe co Torvalds na to.
mad_penguin
mad_penguin
@karolinaa czyżby Linux uzyskał samoświadomość?
0

Mnie najbardziej ciekawi, że komuś się chciało nasmarować tyle tekstu, żeby niby udowodnić wyższość svn nad git :S

Shalom
Syndrom sztokholmski ;)
0

A w zasadzie to czy przy nawet duzym projekcie to czy migracja z svn na git moze byc jakos szczegolnie skomplikowana?

ML
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 6 godzin
  • Postów:856
0

Przypomina mi się wojna między Commodore i Atari. Każdy używa to co mu pasuje a nie to co modne. Tak jak napisał @somekind, to narzędzie dla programisty a nie do lansu.

kaczus
Tym bardziej, że "duże" atari (a po stronie C= Amigi) w zasadzie konstruowały zespoły zamienione, konstruktorzy z Atari konstruowali Amigi, konstruktorzy z C= nowe Atari :)
somekind
Z tą różnicą, że SVN to nie narzędzie tylko zabawka BDSM.
ML
Zależy dla kogo, niektórym wystarcza.
somekind
No nie wątpię, jedni lubią pejcze i kajdanki, inni SVNa. ;)
0

a jest jakiś guide from git to svn?

niestety czeka mnie zabawa bdsm z svn...

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@Złoty Młot tu wielkiej filozofii nie ma. Wyobraź sobie że jedyne co możesz zrobić to push (nazywane tutaj commit) oraz pull (nazywane update) ;]


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

Niby tak, ale zrobilem sobie testowe repo to z mergowaniem branchy mialem juz wtf ;)

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@Zimny Młot dlatego nie wspomniałem nic o branch ani merge. Powtarzam: wyobraź sobie że jedyne co możesz zrobić to push (commit) oraz pull (update) ;)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0
Shalom napisał(a):

@Zimny Młot dlatego nie wspomniałem nic o branch ani merge. Powtarzam: wyobraź sobie że jedyne co możesz zrobić to push (commit) oraz pull (update) ;)

mam rozumiec, ze ludzie pracujacy na svn nie uzywaja branchy i nie pracuja nad jednym kawalkiem rownoczesnie? :|

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Bardzo często tak właśnie jest. A branch jest raczej stosowany jako fork


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 19 godzin
5

niestety czeka mnie zabawa bdsm z svn...

Możesz używać gita (git svn), czyli lokalnie masz gita tylko zamiast git push robisz git svn dcommit.

edytowany 1x, ostatnio: Azarien
wiciu
  • Rejestracja:ponad 11 lat
  • Ostatnio:4 dni
  • Postów:1205
0

Szczerze mówiąc, nie chciało mi się czytać wszystkich postów.
Wątek powstał w roku 2012. Mamy rok 2016. Tu nie ma o czym dyskutować.
Git to jest standard i lepszy system, a SVN, to przeżytek obecny chyba tylko w systemach legacy, przy których pracują ludzie starej daty bojący się zmian.
Nie wiem, czy ktoś przy zdrowych zmysłach wybrałby SVN do nowego projektu. ;)

somekind
Wcale nie standard, wiele projektów wciąż stoi na SVN/TFS, nowe również.
wiciu
@somekind Wiem, bo pracowałem na takich (cvs, svn, tfs), ale to jest jakieś piekło. Równie dobrze mógłbyś mi powiedzieć, że dalej używa się javy 1.5 i też miałbyś rację. Cobola też się używa, itd. ;-). Nie uważam, że trzeba pchać się w nowości za wszelką cenę, ale w przypadku gita nie widzę przeciwwskazań zwłaszcza, że nie jest to już żadna nowość.
somekind
Ale ja nie popieram ani nie usprawiedliwiam tej sytuacji, jedynie fakty stwierdzam. SVN jest niestety wciąż bardzo popularny, a takie strony jak ta podlinkowana wyżej, świadczą o tym, że wielu ludzi woli go od Gita.
wiciu
Z przykrością muszę przyznać Ci rację. Mam nadzieję, że nie przyjdzie mi w przyszłości z tymi starociami już więcej pracować, bo należy im się zasłużona emerytura. :-)
0

Widze, ze nawet gitextensions ogarnia git-svn, tak trochę.

0
wiciu napisał(a):

Szczerze mówiąc, nie chciało mi się czytać wszystkich postów.
Wątek powstał w roku 2012. Mamy rok 2016. Tu nie ma o czym dyskutować.
Git to jest standard i lepszy system, a SVN, to przeżytek obecny chyba tylko w systemach legacy, przy których pracują ludzie starej daty bojący się zmian.
Nie wiem, czy ktoś przy zdrowych zmysłach wybrałby SVN do nowego projektu. ;)

wiesz, jak jest ogromny projekt to moze byc ciezko sie przesiasc z dnia na dzien ;)

wiciu
Z dnia na dzień nie, ale ogólnie się da. Wiem, że są pewne ograniczenia - np. jak w projekcie jest wiele commit message'y, bo np. projekt trwa 15 lat, to nie da się ich wszystkich zmigrować. Natomiast sama migracja może trwać np. kilka lub kilkanaście godzin. Trzeba pójść na jakiś kompromis i wszystko się da, chyba, że osoby decyzyjne, to beton.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)