Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   github. как правильно выложить приложение (https://javascript.ru/forum/offtopic/33809-github-kak-pravilno-vylozhit-prilozhenie.html)

nerv_ 15.12.2012 17:51

Цитата:

Сообщение от monolithed
Если ты имеешь ввиду http://mac.github.com/

почти. GUI для Git и GitHub в частности

я пока пользуюсь этим описание, ссылка на скачку. Первое впечатление - очень наглядно и вроде как удобно.

еще нагуглил
http://code.google.com/p/tortoisegit/
http://nathanj.github.com/gitguide/tour.html, на русском http://tutorials.assembla.com/git-gu...s/tour.ru.html
http://www.syntevo.com/smartgit/index.html
http://sourceforge.net/projects/gitextensions/, http://code.google.com/p/gitextensions/
http://git-cola.github.com
http://sourceforge.net/projects/qgit/
https://live.gnome.org/giggle

список http://git-scm.com/downloads/guis

tenshi 15.12.2012 19:01

классно, а то баш порядком подзадолбал.

dmitry111 16.12.2012 10:53

Цитата:

Сообщение от monolithed
Конечно, стоит!
К примеру, вот мой конфиг

благодарю!

dmitry111 16.12.2012 10:56

А как скрыть ненужные файлы в выдаче на запрос git status?

Мешается .idea/

(((

melky 16.12.2012 11:56

Цитата:

Сообщение от dmitry111 (Сообщение 221600)
А как скрыть ненужные файлы в выдаче на запрос git status?

Мешается .idea/

(((

Код:

$ git config --global core.excludesfile '~/.gitignore_global'
$ echo ".idea/*" > ~/.gitignore_global


dmitry111 16.12.2012 12:08

melky,

спасибо!

dmitry111 16.12.2012 12:14

melky а ты есть на github?

melky 16.12.2012 13:54

Цитата:

Сообщение от dmitry111 (Сообщение 221611)
melky а ты есть на github?

https://github.com/colch

но я там ничего пока не выкладывал - только переводил прошивку под свой телефон.

monolithed 16.12.2012 15:42

Цитата:

Сообщение от dmitry111
А как скрыть ненужные файлы в выдаче на запрос git status?
Мешается .idea/

Нужно добавить правило в файлы:
.gitignore или в .gitignore-global

пример

Цитата:

Сообщение от melky
$ git config --global core.excludesfile '~/.gitignore_global'
$ echo ".idea/*" > ~/.gitignore_global

Так можно затреть все правила в gitignore_global!

Должно быть так:
$ echo ".idea" >> ~/.gitignore_global


А вообще, я добавил это правило в алиасы:
ignore     = !([ ! -e .gitignore ] && touch .gitignore) | echo $1 >> .gitignore

dmitry111 18.12.2012 11:37

а как удалить проиндексированный каталог и вложенные в него файлы из git, при этом не удаляя его из директории?

Вроде для этого есть git rm --cached , но она не работает

monolithed 18.12.2012 11:58

Цитата:

Сообщение от dmitry111
а как удалить проиндексированный каталог и вложенные в него файлы из git, при этом не удаляя его из директории?

git rm -rf --cached -- /usr/home...

dmitry111 18.12.2012 14:04

monolithed,

спасибо!

nerv_ 25.12.2012 23:20

мне кажется (как новичку) или git действительно слишком сложен?

dmitry111 25.12.2012 23:27

nerv_,

сам гит вроде бы прост, вот все его команды (судя по git help):

The most commonly used git commands are:
add
bisect
branch
checkout
clone
commit
diff
fetch
grep
init
log
merge
mv
pull
push
rebase
reset
rm
show
status
tag


но иногда нужны еще возможности за пределами гита))

nerv_ 25.12.2012 23:32

dmitry111, ты забыл перечистить дох*я_аргументов * n_комбинаций ;)

dmitry111 25.12.2012 23:32

вот тут понятно изложено http://githowto.com/ru

В книге про Git, ИМХО, много воды и после ее прочтения возникает еще больше вопросов))
Первая глава вообще не нужна такая растянутая, а вторая вроде бы должна дать все основы, но как-то все поверхностно, как мне показалось. Напишите это - будет это, напишите то - будет то.. Знать бы зачем это писать))

Разобрался в книге, после изучения вышеназванной ссылки

nerv_ 25.12.2012 23:33

Цитата:

Сообщение от dmitry111
В книге про Git, ИМХО, много воды и после ее прочтения возникает еще больше вопросов))

пока так и есть) Но, все-таки информация (на мой взгляд) нужная

melky 25.12.2012 23:35

Цитата:

Сообщение от nerv_
мне кажется (как новичку) или git действительно слишком сложен?

на самом деле, самая простая и мощная cvs

dmitry111 25.12.2012 23:35

Цитата:

Сообщение от nerv_
dmitry111, ты забыл перечистить дох*я_аргументов * n_комбинаций

каких?
Ты их в алиасы запишешь зачем их зубрить?
Чтобы вывести log с нужными параметрами, я пишу
git hist

сами параметры привязаны к hist. Зачем мне их помнить?


Если будешь 24/7 работать с git все запомнится само собой!

dmitry111 29.12.2012 15:30

настройка git (.gitconfig)
http://habrahabr.ru/post/164297/
может кому пригодится

melky 29.12.2012 15:40

Цитата:

Сообщение от dmitry111
сам гит вроде бы прост, вот все его команды (судя по git help):

zsh показывает мне 126 вариантов
Цитата:

melky@colch> git ~
zsh: do you wish to see all 126 possibilities (126 lines)?
там есть такие фишки, как :
Цитата:

request-pull -- generate summary of pending changes
походу, это абсолютно все команды git'а

dmitry111 29.12.2012 16:44

melky,

ты обещал поглядеть нагрузку на cpu на слабом ноуте. Сами цифры необязательны, главное мнение от работы браузера!
Погляди пожалуйста http://sp.hnoe.ru/ !

nerv_ 29.12.2012 16:53

вроде начинаю осваиваться потихоньку

dmitry111, melky, если не сложно, пример вашей работы с git, т.е. конкретно как вы с ним работаете.

Цитата:

Сообщение от dmitry111
сам гит вроде бы прост, вот все его команды (судя по git help):

git help --all

http://git-scm.com/docs/git-help

dmitry111 29.12.2012 17:36

Цитата:

Сообщение от nerv_
dmitry111, melky, если не сложно, пример вашей работы с git, т.е. конкретно как вы с ним работаете.


вот это кстати тоже хотелось бы обсудить..

Как работаю я:
1 после того как есть видимые результаты проекта инициализирую гит (git init)
2 Скрываю ненужные файлы, папки, чтобы не мешались (например папки с картинками)
3 Добавляю и коммичу(тю) все рабочие файлы (git add <имя файла>, git commit -m "коммит в терминале"). Можно все это сделать с помощью одной команды, добавив и закоммитив все разом, но я описываю каждый файл отдельно
4 Когда проект готов я выставляю версию для него (git tag <версия>)
5 тут все повторяется с 3-его пункта

Для того чтобы попрыгать по версиям надо ввести git checkout <версия>

dmitry111 01.01.2013 02:20

nerv_,

рекомендую видео о гит и гитхаб!
1
2
3
4

первое о гите (тоже самое что я описал выше, только белее развернуто)
второе о взаимодействие гита и гитхаба

остальные пока не смотрел.

melky 01.01.2013 02:28

вот бля только сейчас заметил ... пост не отправился,... отправлял 1 или 2 дня назад :(


я там так расписал о workflow в GIT'е ...

завтра отвечу. и профилирование тоже скину

но вкратце - JS на странице после загрузки вообще не исполняется, т.е. причина тормозов в CSS и GIF'ах, как мне кажется.

dmitry111 02.01.2013 08:07

melky,

так и не ответил, жду!!!! )))

Цитата:

Сообщение от melky
но вкратце - JS на странице после загрузки вообще не исполняется, т.е. причина тормозов в CSS и GIF'ах, как мне кажется.

то есть это настолько нагружает CPU, что аж js не исполняется?
Думаю всему виной gif анимация..

melky 02.01.2013 17:35

Цитата:

Сообщение от nerv_
dmitry111, melky, если не сложно, пример вашей работы с git, т.е. конкретно как вы с ним работаете.

делаю коммиты через интерактивный режим, если изменений много
Код:

git commit --interactive
у этого режима великое множество плюшек, о которых можно почитать в man'е :)

а так, как обычно - чрез командную строку. Всё руки никак не дойдут до создания шаблонов коммитов (см. progit)

все фичи и багфиксы делаю в отдельных ветках, после чего вливаю их в окончательную со сплющиванием :
Код:

git merge --squash
а так, как обычно, если не считать черрипикание (cherry-pick) - применение одного коммита из другой. но это обычно в чужих проектах, типа русификации настроек для прошивки (обажаю open source, хех), который сейчас является моим единственным проектом, если судить по github'у.

пока ничего более интересного не могу придумать :)

логи смотрю через
Код:

git log --graph --oneline
т.к. каждый коммит имеет заголовок (первая строка) и тело.

Цитата:

Сообщение от dmitry111
то есть это настолько нагружает CPU, что аж js не исполняется?
Думаю всему виной gif анимация..

да, так и есть.

ужасно тормозит :) даже с перекрывающим окошком. навскидку кадров где-то 10 в секунду, если не меньше.

скрывай GIF'ы - в них дело.

даже и не знаю, было бы лучше ли сделать смайлики через спрайты, а не через GIF'ы?

результат профилирования при загрузке страницы :


dmitry111 02.01.2013 20:48

melky,

спасибо большое! Хотел плюс потавить, но не ставится почему-то, попозже поставлю

Решил поступить так:
буду разбивать библиотеку со смайликами на части и выводить вроде как "постранично" (странички будет составлять скрипт)

То есть вместо 160+ анимированных гифов, которые выводятся сейчас, будут выводится например 30 , и будет 6 страниц (160/30 = 5,3 = 6 стр)

Плюсы:
1 В разы меньше запросов на сервер. Если сейчас в среднем 164, то будет всего 34
2 Снижение нагрузки на CPU более чем в 5 раз
3 Можно настроить количество выводимых смайликов за раз. Их может быть не 30, а 20 или 10 или 50.

Минусы:
1 Прийдется полностью пересматривать одну из систем кеширования - сессионный кеш (это когда сохраняются изменения, которые возникли при перемещении смайликов пользователем)
2 Банально - мало смайликов. На широких мониторах не красиво

будет что-то вроде:


tenshi 03.01.2013 00:10

а что мешает показывать только те смайлики что попадают в видимую область а остальные прятать?

tenshi 03.01.2013 00:14

не могу отдрегендропить смайлики пальцем. какой отстой)

monolithed 03.01.2013 03:36

Цитата:

Сообщение от nerv_
мне кажется (как новичку) или git действительно слишком сложен?

Как и любым другим приложением им просто нужно начать пользоваться.

К примеру, если взять и разобрать команду выше:
git rm -rf --cached -- /usr/home...

Нам нужно что-то удалить?
в *nix-системах принято использовать команду rm, смотрим есть ли такая в git:
git rm --help

Ключ --help нужен для отмены действий по-умолчанию и вызова хелпера.

Тут же мы увидим список ключей, среди которых есть нужный:
--cached
           Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.

Далее вспоминаем, что для рекурсивного удаления каталогов в *nix-системах используется ключ -r, а для подавления предупреждений ключ -f, смотрим:
man rm
-f          Attempt to remove the files without prompting for confirmation, regardless of the file's permissions.  If the file does not exist, do not dis-
                 play a diagnostic message or modify the exit status to reflect an error.  The -f option overrides any previous -i options.

-r          Attempt to remove the file hierarchy rooted in each file argument.  The -R option implies the -d option.  If the -i option is specified, the
                 user is prompted for confirmation before each directory's contents are processed (as well as before the attempt is made to remove the direc-
                 tory).  If the user does not respond affirmatively, the file hierarchy rooted in that directory is skipped.

git rm --help
-f, --force
           Override the up-to-date check.
-r
           Allow recursive removal when a leading directory name is given.



PS: все команды и ключи git выучить наизусть конечно не получиться, для это есть хелпер

dmitry111 03.01.2013 08:35

Цитата:

Сообщение от tenshi
а что мешает показывать только те смайлики что попадают в видимую область а остальные прятать?

Имеешь в виду вот так или как?



Цитата:

Сообщение от tenshi
не могу отдрегендропить смайлики пальцем. какой отстой)

на планшетнике?

tenshi 03.01.2013 12:26

нет, я имею ввиду как в долбанном вконтактике - блоки не попадающие в видимую область удаляются из документа.

на таблетке

nerv_ 03.01.2013 16:53

Цитата:

Сообщение от dmitry111
Как работаю я:

на данный момент у меня дело происходит так:
1. постановка задачи + файлы, git init, открываю проект
2. далее работа, git commit (достаточно частый, т.к. знающие люди сказали, что потом можно будет легко избавиться от ненужных. слить и т.п.)

с ветвлением пока только начал знакомится

melky, спс. Почитал немного про --interactive, но так и не понял в чем прелесть. Можно в двух словах?

Цитата:

Сообщение от monolithed
Как и любым другим приложением им просто нужно начать пользоваться.

отчасти так и есть. Думаю, еще сказывается то, что Git моя первая система контроля версий. До этого с ними дела не имел.

Сейчас, спустя ~ 1,5 недели работы (на примитивном уровне) с Git, начинаю потихоньку осваиваться. Удобная штука. А ведь я пользуюсь лишь немногими ее возможностями. Буду ковырять дальше :)

melky 03.01.2013 17:06

Цитата:

Сообщение от nerv_
melky, спс. Почитал немного про --interactive, но так и не понял в чем прелесть. Можно в двух словах?

если кратко: использовать git add --interactive по любому файлу и тут же комитить :)

интерактивное добавление подразумевает собой то, что можно stage'ить только те куски из diff'а, которые не в прогрессе работы - т.е. комитить те куски изменений, которые доделаны.

особенно полезно, если забыть что-то закомитить, и работаешь дальше ... через неск. дней очень много изменений накапливается.

tenshi 03.01.2013 18:17

а если не проверять что коммитишь можно получить в репе нерабочую версию.

dmitry111 04.01.2013 06:02

Сделал lite-версию приложения http://test.hnoe.ru/sp/
Изменения производились только в css
По моим наблюдениям нагрузка уменьшилась втрое - в состоянии покоя равна 3-м открытым яндексам

Еще по наблюдениям:
1 Гиф анимация на странице создает нагрузку только когда видима. То есть смайлики в элементе за пределами видимой области не создают нагрузку. tenshi, нет смысла их подгружать-удалять, делать у них display: none.
2 Тени, градиенты, закругленные углы - создавали не менее серьезную нагрузку на CPU, чем gif-анимация.

Если lite-версия будет нормально работать на слабых ПК, прикручу ее к основной версии и буду по умолчанию выдавать в старых браузерах.

melky,, если не трудно, посмотри пожалуйста на ноуте!!! Буду ооочень благодарен!

tenshi 04.01.2013 16:19

тем не менее они участвуют в reflow, хотя это мелочи конечно.

dmitry111 06.01.2013 09:07

Уфф.. наконец-таки доделал..

Как вам подход к реализации lite и full версии сайта:

http://test.hnoe.ru/sp/

там внизу где копирайт вся фишка, кликайте на ссылку lite/full


По показателя: в браузере safari нагрузка на CPU в lite версии снижается более чем в 4 раза! И все это средствами css


Часовой пояс GMT +3, время: 23:08.