.gitignore

64 views
Skip to first unread message

PavelZet

unread,
Feb 25, 2018, 11:20:42 AM2/25/18
to django-cs
Soubor .gitignore ve složce projektu udává, které soubory se mají v GIT repozitáři ignorovat a tedy nepřenášet.
Snažím se navrhnout optimální seznam a případně nutný skript pro nasazení projektu.

Soubor .gitignore:
# IDE settings
.idea/

# cache
__pycache__
/

# logging data
*.log

# local settings and passwords
local_settings
.py

# optimalized files (redundant)
*.pyo

# compiled files (redundant)
*.pyc

# compiled translations (redundant)
# > manage.py compilemessages
*.mo

po aktualizaci kódů z repositáře je vhodné aktualizovat aplikace (závislosti, databáze)
manage.py migrate

dále je třeba znovu zkompilovat překladový slovník
manage.py compilemessages

Otázka 1:
Je vhodné ignorovat také složku static/ projektu ?
# project static files
# > manage.py collectstatic
static/
poté by bylo potřeba znovu naplnit složku static projektu neměnnými soubory aplikací
manage.py collectstatic
Ale co když se rozhodnu modifikovat třeba css administrace (static\admin\css\base.css), nebo fonty atd. ? to se pak změny ze static na cílový server nepřenesou :( 
Jak se tento problém řeší ?

Otázka 2:
Je vhodné ignorovat složku media/ projektu ?
# project media files
media
/


Díky za reakce.

Beda Kosata

unread,
Feb 25, 2018, 1:13:07 PM2/25/18
to djan...@googlegroups.com
Ahoj,

jen v rychlosti.

2018-02-25 17:05 GMT+01:00 PavelZet <zeh...@gmail.com>:
>
> Otázka 1:
> Je vhodné ignorovat také složku static/ projektu ?
> # project static files
> # > manage.py collectstatic
> static/
> poté by bylo potřeba znovu naplnit složku static projektu neměnnými soubory
> aplikací
> manage.py collectstatic
> Ale co když se rozhodnu modifikovat třeba css administrace
> (static\admin\css\base.css), nebo fonty atd. ? to se pak změny ze static na
> cílový server nepřenesou :(
> Jak se tento problém řeší ?
>

Pokud static/ používáš tak, jak to je v defaultním nastavení Djanga,
tak v tomhle adresáři bys neměl nic ručně měnit. Sem se jen kopírují
statické soubory z jiných míst, typicky hlavně static adresářů
jednotlivých aplikací. Takže změna se provede tam a až pomocí
"collectstatic" se to automaticky nakopíruje sem. (BTW v debug modu
tohle dělat nemusíš, django si to najde v příslušných adresářích
samo).

Takže tento adresář by vůbec neměl být v gitu trackovaný a měl by se
plnit až na serveru v rámci nějakého nasazovacího skriptu. Osobně si
nemůžu vynachválit ansible - chvíli trvá, než se s ním člověk sžije,
ale pak to šetří neuvěřitelné množství práce.

> Otázka 2:
> Je vhodné ignorovat složku media/ projektu ?
> # project media files
> media/
>

Media jsou typicky soubory, které uploaduje uživatel, takže by měly
být specifické pro dané nasazení a není tedy nutné je mít v gitu. Tedy
spíš bych to považoval za nevhodné.

Měj se

Beda

>
> Díky za reakce.
>
> --
> --
> E-mailová skupina djan...@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „django-cs“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
> zašlete e-mail na adresu django-cs+...@googlegroups.com.
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/django-cs/1a21916c-a94a-442e-90f0-a52b34c365ce%40googlegroups.com.
> Další možnosti najdete na https://groups.google.com/d/optout.

PavelZet

unread,
Feb 25, 2018, 1:49:29 PM2/25/18
to django-cs
Super, díky moc za jasnou odpověď, Bedo.

Jak se ale řeší situace, kdy chci v několika projektech použít administraci djanga, ale v každém projektu mít třeba ohnuté css? Např. jeden projekt bude mít administraci do červena, druhý do zelena, třetí do modra...
Pokud změním css v aplikaci adminu, bude změna ve všech projektech.
Pokud změním css ve static/ tak se vůbec nezazanamená v gitu.

Nenapadá mě racionální řešení :(
Snad přetížit/zdětit django administraci vlastní aplikací a tam css přetížit ?

Díky moc za názor.


Dne neděle 25. února 2018 19:13:07 UTC+1 beda napsal(a):

Ales Zoulek

unread,
Feb 26, 2018, 2:05:09 AM2/26/18
to djan...@googlegroups.com
Django admin ma pomerne hodne propracovany moznosti, jak pretezovat templaty a css... At uz per projekt, per model, nebo per view...

Koukni na:
1. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates (pretezovani template, kde si pak asi chces pridat nejaky css include do headeru stranky)
2. Nebo na https://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-asset-definitions (model admin si muze natahnout vlastni css/js)

A.

Vláďa Macek

unread,
Feb 26, 2018, 5:08:19 AM2/26/18
to djan...@googlegroups.com
Jen poznamka k ignorovani gitem obecne:

Do commitovaneho .gitignore patri veci, ktere vyuziji vsichni vyvojari v
tymu. I kdyz ted v tymu nedelas, ta pravidla doporucuju dodrzovat.
Priklad:
    .cache/
    .pytest_cache/
    /dist/

Existuji soubory, ktere jsou vysledkem tvyho vlastniho lokalniho
experimentovani v danem repozitari. Nebo jsou soukrome. Jejich ignorovani
se necommituje, takze se o nich nikdo nedozvi, ani ho neotravuji.
To je v souboru .git/config/exclude

Pak existuji soubory, ktere chces mit excludovane ve vsech repozitarich na
danem pocitaci. Ty muzes definovat v ~/.config/git/ignore (ale bacha, tuhle
cestu git nezna moc dlouho). Osobne kompatibilne definuju v .gitconfig toto:

[core]
    excludesfile = ~/.gitignore

A priklad ~/.gitignore:

    *~
    *.pyc
    /.project
    /.pydevproject
    /.idea
    /.settings/

... treba protoze jsem jako jediny z tymu pouzival Eclipse. Soubory koncici
tildou vytvari muj editor jako zalohy.

A s temi, kteri docetli az sem, se podelim o jeden fajn bonus. Dnes jsem ho
objevil. Pouzivam v Ubuntu git z PPA, takze ho mam novejsi. Vylepseni
barevneho diffu, ktery hodne pouzivam, pomoci --color-moved. Jde zapsat do
configu jako snad cokoli. Obarvi se tim radky, ktere byly premistene.

V.

Reply all
Reply to author
Forward
0 new messages