@proGO

Страница 210 из 1674
Vladislav
05.09.2016
11:50:31
но есть алгоритмы, в которых это важно
а пример можно? ну в плане, пример задачи, что такое надо сделать, чтобы знать подобное?

Vladislav
05.09.2016
11:51:55
ок, спасибо

Google
Phil
05.09.2016
16:49:19
У меня странный вопрос. Хочу просто и красиво. Есть пользователи. Они работают с сервисом. Каждый их них редактирует некий свой файл. Файл по определению небольшой, до мегабайта. По определению текстовый. Каждое сохранение файла я хочу откладывать в историю, чтобы можно было в любой момент вернуться. Простой VC без дифов. Сервис хочу на Go. Что использовать в качестве storage? P.S. На github все подобное простите в монге хранят

Paul
05.09.2016
16:49:49
почему бы не использовать git и файловую систему?

я без подколок

Daniel
05.09.2016
16:50:32
до мегабайта - хоть в мускул складывай, с автоинкрементом и датой

Phil
05.09.2016
16:51:26
почему бы не использовать git и файловую систему?
Я думал про git. Есть какие-то интерфейсы к нему? А оно работать норм будет? Подключать репы и всё такое?

до мегабайта - хоть в мускул складывай, с автоинкрементом и датой
Да я думал об этом. Хочется ещё проще. Грубо говоря, я людям кронтабы хочу дать так редактировать ) Ещё mysql для этого держать...

Может Leveldb как-то приспособить?

Maxim
05.09.2016
16:53:14
Тип того
Тогда строй систему хранящий изменения как в Git, либо фигачь локальные репозитории на каждого юзверя через сам Git, например

Paul
05.09.2016
16:54:35
я бы делал через сам гит, наверняка есть интерфейсы в го

Phil
05.09.2016
17:03:16
тогда гит, конечно же
По git на юзера и открывать?

Google
Phil
05.09.2016
17:22:49
Я бы git использовал
а есть нативный интерфейс без екзека?

Phil
05.09.2016
17:32:01
?
ну просто если через утилиту делать, то это громоздко и мягко говоря теряется смысл го. мне легче через файлики и самописный индекс это тогда сделать

Daniel
05.09.2016
18:52:13
Так и сделай

Phil
05.09.2016
18:53:58
?

Дмитрий
05.09.2016
18:57:00
Можно без сложностей в sqlite

Daniel
05.09.2016
18:58:40
не нужно

нужно сделать на гите, но самым простым образом

Дмитрий
05.09.2016
19:00:37
Самым простым образом git это exec. Три команды то всего надо.

А чтобы интересно было, то можно взять libgit2 и go-биндинг к ней.

Daniel
05.09.2016
19:03:12
и иббануццо

Дмитрий
05.09.2016
19:08:25
На самом деле от цели зависит. Например, если надо метаданные по изменению файла хранить, то git это уже неудобно.

А если файлы редактируются нечасто, то вообще можно в одном json-массиве всю историю хранить :)

Мерлин
05.09.2016
19:16:47
Можно свилопедить и писать в файлы пожатые диффы в base64

Phil
05.09.2016
19:23:19
Самым простым образом git это exec. Три команды то всего надо.
А напомни их. Я например в отличии от svn не помню как в текущее место накатить какую-то абстрактную ревизию, так чтобы она стала текущей

Мерлин
05.09.2016
19:24:20
git add . git commit -m "очень умный комментарий" git push

ну и git pull

Phil
05.09.2016
19:24:50
git add . git commit -m "очень умный комментарий" git push
А взять коммит айди такой-то и сделать его текущим?

Google
Phil
05.09.2016
19:25:30
Или плюнуть и сделать тупой WSGI с exec'ами?

Daniel
05.09.2016
19:25:33
git log еще

Мерлин
05.09.2016
19:25:54
Или плюнуть и сделать тупой WSGI с exec'ами?
Я бы велосипед попробовал написать

Чисто из интереса

Phil
05.09.2016
19:26:22
Или тупо MySQL и не мучать бабушку?

Мерлин
05.09.2016
19:26:42
Дмитрий
05.09.2016
19:27:23
Если у тебя уже есть БД в проекте, то странно её не использовать

Phil
05.09.2016
19:28:02
Если у тебя уже есть БД в проекте, то странно её не использовать
Да неит никакого прожекта. Я хочу вебкрон сделать на хостинг

Если у тебя уже есть БД в проекте, то странно её не использовать
Естественно это отдельный прожект с оьдельным стораджем

Мерлин
05.09.2016
19:28:34
https://github.com/sergi/go-diff

Дмитрий
05.09.2016
19:28:37
Так ты юзерам же баланс считаешь и хранишь где-то

Phil
05.09.2016
19:29:54
Или так
Но велосипед зато позволит держать открытыми индексы с открытыми сессиями. Хоть mmap'ом. Кстати, а что в Go с mmap?

Так ты юзерам же баланс считаешь и хранишь где-то
Ну вот только не хватало на биллинг завязывать вспомогательные сервисы

Дмитрий
05.09.2016
19:32:22
Ну вот только не хватало на биллинг завязывать вспомогательные сервисы
Ну если религия не позволяет, то и ладно. У меня вот всё в одной БД, и, надо сказать, работает превосходно.

А напомни их. Я например в отличии от svn не помню как в текущее место накатить какую-то абстрактную ревизию, так чтобы она стала текущей
git add -A && git commit -am // закоммитить git log // история изменений git checkout <rev> <filename> // получить файл нужной версии Ползать по истории не надо, т.к. достаточно закоммитить поверх.

А ещё вот погуглил насчёт libgit2 и нашёл вот такой примерчик: https://blog.gopheracademy.com/advent-2014/git2go-tutorial/ Выглядит несложно совсем...

Daniel
05.09.2016
20:21:18
нет

Google
Дмитрий
06.09.2016
07:32:51
так стоп. git научился один файл вытаскивать?
А что, не умел? Я пару месяцев всего с git, так что для меня это норм.

Вот ещё нашёл, что можно пользоваться для тех же целей git cat-file и git show. Но я "интуитивно" использую git checkout и мне хватает. http://stackoverflow.com/questions/2071288/equivalent-in-git-of-hg-cat-or-svn-cat

Дмитрий
06.09.2016
07:51:25
Я прямо сейчас проверял и всё умеет

Или мы фантастическим образом говорим о разных вещах

Admin
ERROR: S client not available

Phil
06.09.2016
07:56:28
Я прямо сейчас проверял и всё умеет
покажи как средствами git содрать вот этот файлик https://github.com/schors/perkele/blob/master/LICENSE

Дмитрий
06.09.2016
07:59:42
Интересует версия из Initial Commit? Тогда вот так: git checkout ece2f9df0325d3a172c782a1b6967457bbed96d4 LICENSE и тогда в рабочем каталоге получается файлик из того коммита

Kirill
06.09.2016
12:57:51
А можно добавить GoCryForHelp? Правда не понятно, в какой раздел положить
конечно. можешь сделать PR? в раздел со ссылками на всякие сайты, думаю, пойдет

а, погодите-ка, я же уже делал PR

никто не ответил. ладно, пойду смёрджу

Zver
06.09.2016
13:09:26
Тоже хочется с кем-нибудь смержиться. ?

Phil
06.09.2016
13:09:53
Чтобы потом есмть детей?

Kirill
06.09.2016
13:10:55
готово, смёрджил

не знаю, упоминали ли тут это, но вот хорошая подборка упражнений для начинающих и не очень: https://github.com/fluency-in/go

Denis
06.09.2016
20:16:54
Я слышал в одном из подкастов голанг шоу . Ребята кажется из медузы рассказывали что у них есть софт , который позволяет записывать запросы и ответы сервисов что бы потом тестировать софт эмулируя работу сервисов по заранее записанным данным

Gregory
07.09.2016
06:19:26
https://www.manning.com/books/go-in-practice - кто-то смотрел эту книгу?

Google
Pavel
07.09.2016
07:33:03
Вопрос по го (нубский) :)

Я вот читаю содержимое каталога через fileInfos, err := dir.Readdir(-1)

Смотрю что в fileInfos есть данные по полному пути к файлу, но как его получить не вижу в описании библиотеки os

type FileInfo interface { Name() string // base name of the file Size() int64 // length in bytes for regular files; system-dependent for others Mode() FileMode // file mode bits ModTime() time.Time // modification time IsDir() bool // abbreviation for Mode().IsDir() Sys() interface{} // underlying data source (can return nil) }

а если делаю PrintF("%v+", fileInfos) - то вижу в дампе полный путь

точнее fmt.Printf("%v+", fi) в цикле уже

ВОт структура fi

d:\>go run erase_p.go &{123.xml {32 {1583654949 30542040} {1583654949 30542040} {3159407046 30541824} 0 452453} {0 0} d:\test\123.xml 0 0 0}

есть методы для доступа к значению d:\test\123.xml ?

Zver
07.09.2016
08:20:11
Можно конечно привести к объекту реализующему интерфейс или посмотреть, что там Sys() возвращает, но я бы не стал, так как нет гарантии, что в дальнейшем не поменяется структура. Но надо смотреть, сейчас такой возможности нет, с телефона сижу.

Pavel
07.09.2016
08:35:54
просто странно что в переменной данные есть, а метода нет

а лезть без метода - это не по феншуй

Sergey
07.09.2016
08:49:37
а с симлинками как быть?

Zver
07.09.2016
08:53:54
Ну переменные могут быть платформозависимые и может, к примеру, для каких-то платформ не быть полного пути.

а с симлинками как быть?
А что с ними? Вообще в filepath есть функция для симлинков.

Страница 210 из 1674