Pull to refresh

Советы по фиксациям в SVN

Reading time 4 min
Views 2.7K
Version control systems *
Translation
Предлагаю перевод хорошей статьи с советами по выполнению фиксаций в хранилище. Оригинал написан для проекта T2, но практически все советы универсальны и легко применимы для любого другого проекта. А самое главное — они действительно полезны.

Upd: В названии статьи хоть и фигурирует SVN, но советы, изложенные в ней, подходят ко всем известным мне системам кондроля версий. Стоит так же заметить, что советы направлены в основном на командную разработку.

Читать дальше →
Total votes 51: ↑42 and ↓9 +33
Comments 60

SVN hooks: изменение комментария к ревизии

Reading time 3 min
Views 20K
Version control systems *
Не секрет, что по умолчанию изменение текста комментария к ревизии в SVN не разрешено. Пост предназначен для тех, кто хочет сделать это возможным, но не знает как.
заодно почитаем про хуки
Total votes 30: ↑25 and ↓5 +20
Comments 19

KnockoutJS: сказ о том, как легко принимать или отклонять изменения

Reading time 6 min
Views 8K
JavaScript *
Довольно часто в пользовательском интерфейсе есть кнопки «Сохранить» и «Отмена». Особенно часто эти кнопки используются в формах. Несмотря на то, что в современном мире всё идёт к упрощению интерфейса, но на эти кнопки всё равно есть спрос.

Сегодня я предлагаю разобраться как с помощью KnockoutJS принимать и откатывать изменения для индивидуальных observables так и целых view models.

Знакомые с KnockoutJS сразу могут выдать две ссылки на лучший блог о сабже

У этих методов есть как плюсы, так и вполне существенные недостатки, от которых нужно избавлятся. Недостатки с функциональной точки зрения
  • Dirty flag — не позволяет сохранять изменения, а только сбросить их в начальное состояние.
  • protectedObservable — никто не видит изменений observable до тех пор, пока не произойдёт commit. Это ограничение сильно удручает при использовании dependent observables, к примеру.

Ну и к тому же, они нацелены на индивидуальные observable'ы, а хотелось бы работать с несколькими полями сразу.

Под катом детально разберём процесс создания простого механизма, который сделает работу с принятием и отменой изменений простой и прозрачной.

Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 13

Пять полезных советов при составлении коммит сообщения

Reading time 2 min
Views 12K
Git *
Translation
image
Итак, Вы готовы сделать свой великолепный коммит, который, безусловно, делает код чуточку лучше, либо фиксить какой-то баг, а может, Вы и вовсе решили поменять переходы строк на Windows/Unix-Style? Естественно, Ваш код безупречен и достоин всевозможных похвал! Браво! Достойно ли Ваше сообщение Ваших трудов? Смогут ли потомки разобрать, что Вы сделали через месяц? Через год? Десять лет?

Прошу под кат!
Total votes 32: ↑15 and ↓17 -2
Comments 16

Стиль именования коммитов

Reading time 4 min
Views 108K
Website development *Git *Mercurial *
the Octobi Wan Catnobi

Про многие моменты разработки есть очень много информации. Как писать комментарии, как именовать классы, методы, какие паттерны использовать и т.д. и т.п. Но есть одна область, в которой многие даже и не задумываются о том, что можно что-то улучшить — это написание коммитов.
Читать дальше →
Total votes 59: ↑43 and ↓16 +27
Comments 51

Полезности Mercurial

Reading time 5 min
Views 36K
Version control systems *Mercurial *
Думаю, почти все читающие знают, что такое Mercurial — это распределённая система контроля версий, для исходного кода и других (преимущественно текстовых) файлов. Многие ей пользуются, и знают основные команды, как то удаление/добавление файлов, создание коммита и отправка локальных изменений в другие репозитории. Однако, Mercurial имеет множество не столь известных функций и команд, которые часто достаточно полезны и удобны. Некоторые из них можно использовать сразу после установки по-умолчанию, некоторые нужно включить в настройках, а для других может потребоваться скачать дополнительное расширение.

Краткий список того, о чём пойдёт речь в статье:

  • hg serve (hgweb) — встроенный веб-сервер
  • расширения pager, progress и color
  • hg [c]record — выбор отдельных изменений для коммита
  • revsets и filesets — поиск коммитов и файлов с запросами любой сложности
  • hg evolve — Changeset Evolution или же «изменяемая история»


logo
Узнать подробности...
Total votes 37: ↑36 and ↓1 +35
Comments 50

Rollback in Cisco IOS XR

Reading time 17 min
Views 16K
Cisco *Network technologies *Server Administration *
image alt

image alt

Все, кто хоть раз сталкивался с необходимостью внести изменения в конфигурацию оборудования Cisco под управлением IOS XR, знают, что в отличии от обычного IOS, IOS-XR требует производить коммит для применения конфигурации. Но как закоммитить конфиг, думаю, что знают все, кто хоть раз в жизни щупал IOS XR. А вот как откатить конфиг назад? На JunOS все легко и понятно, чего не скажешь об IOS XR. До определенного времени и я этого не знал, но в одну из ночей у меня было всего 5 минут, чтобы этому научиться, откатить конфиг и не получить аварию. В сети ничего, кроме мануала самой Циски на английском я не нашел, поэтому решил написать небольшой ликбез по данной теме, авось кому то пригодится.

Итак, поехали…
Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 5

Рисуем коммитами на Гитхабе

Reading time 5 min
Views 34K
Entertaining tasks Data visualization *GitHub *

[Пятничное]


Всегда хотел сделать свой график активности пользовательского профиля на Гитхабе. Например, выкладывать коммиты каждый день так, чтобы через год этот график превратился в какую-нибудь картинку, пусть и с ограничением по размерам в 52×7 квадратиков-пикселей (52 недели в году × 7 дней в неделе).


Проблема была в том, что даже при полной автоматизации процесса всё равно ждать целый год. А тут я почитал документацию Гитхаба и понял, что задача решается проще и более того — за один раз. А значит, надо делать не откладывая. Обычно названия проектам придумывать сложно, но тут оно пришло само. Кай рисовал льдинками, а Герда рисует коммитами!


График коммитов на Гитхабе в виде картинки

Как нарисовать свою картинку коммитами на GitHub
Total votes 91: ↑83 and ↓8 +75
Comments 36

Пара иногда востребованных хитростей при работе с git

Reading time 6 min
Views 24K
Git *
Tutorial

Хочу поделиться рецептами решения пары задач, которые иногда возникают при работе с git, и которые при этом не "прямо совсем очевидны".


Сперва я думал накопить подобных рецептов побольше, однако всему своё время. Думаю, если есть польза, то можно и понемногу...


Итак...

Читать дальше →
Total votes 38: ↑34 and ↓4 +30
Comments 20

Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits

Reading time 8 min
Views 100K
Яндекс corporate blog Website development *Programming *Development of mobile applications *Development for Windows *


Привычный хаос в названиях коммитов. Знакомая картина?

Наверняка вы знаете git-flow. Это отличный набор соглашений по упорядочиванию работы с ветками в Git. Он хорошо документирован и широко распространен. Обычно мы знакомы с правильным ветвлением и много говорим об этом, но, к сожалению, уделяем слишком мало внимания вопросу наименования коммитов, поэтому часто сообщения в Git пишутся бессистемно.

Меня зовут Ержан Ташбенбетов, я работаю в одной из команд Яндекс.Маркета. И сегодня я расскажу читателям Хабра, какие инструменты для создания осмысленных коммитов мы используем в команде. Приглашаю присоединиться к обсуждению этой темы.

Читать дальше →
Total votes 72: ↑71 and ↓1 +70
Comments 84

Как и зачем красть деревья в git

Reading time 15 min
Views 24K
Git *Version control systems *

trees


В этой статье я расскажу об одном полезном, но малоизвестном приеме работы с git — как можно легко создать коммит, используя дерево из другого коммита. Проще говоря, как получить нужное состояние проекта на какой-либо ветке, если это состояние уже когда-то и где-то было в репозитории раньше. Будет приведено несколько примеров того, как это позволяет элегантно решать некоторые практические задачи. И в частности я расскажу о найденном мной методе, который позволяет значительно упростить исправление множественных конфликтов при rebase. Кроме того, эта статья — отличный способ понять на практике, что из себя представляет коммит в git-е.

Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 20

MVCC-3. Версии строк

Reading time 13 min
Views 25K
Postgres Professional corporate blog PostgreSQL *SQL *
Итак, мы рассмотрели вопросы, связанные с изоляцией, и сделали отступление об организации данных на низком уровне. И наконец добрались до самого интересного — до версий строк.

Заголовок


Как мы уже говорили, каждая строка может одновременно присутствовать в базе данных в нескольких версиях. Одну версию от другой надо как-то отличать С этой целью каждая версия имеет две отметки, определяющие «время» действия данной версии (xmin и xmax). В кавычках — потому, что используется не время как таковое, а специальный увеличивающийся счетчик. И этот счетчик — номер транзакции.

(Как обычно, на самом деле все сложнее: номер транзакций не может все время увеличиваться из-за ограниченной разрядности счетчика. Но эти детали мы рассмотрим подробно, когда дойдем до заморозки.)
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 25

MVCC in PostgreSQL-3. Row Versions

Reading time 13 min
Views 7K
Postgres Professional corporate blog PostgreSQL *SQL *
Translation
Well, we've already discussed isolation and made a digression regarding the low-level data structure. And we've finally reached the most fascinating thing, that is, row versions (tuples).

Tuple header


As already mentioned, several versions of each row can be simultaneously available in the database. And we need to somehow distinguish one version from another one. To this end, each version is labeled with its effective «time» (xmin) and expiration «time» (xmax). Quotation marks denote that a special incrementing counter is used rather than the time itself. And this counter is the transaction identifier.

(As usual, in reality this is more complicated: the transaction ID cannot always increment due to a limited bit depth of the counter. But we will explore more details of this when our discussion reaches freezing.)
Read more →
Total votes 7: ↑7 and ↓0 +7
Comments 0

Руководство по Git. Часть №1: все, что нужно знать про каталог .git

Reading time 4 min
Views 54K
VK corporate blog Programming *Git *
Translation



Начало использования Git напоминает посещение новой страны, языка которой вы не знаете. Пока ясно, где вы и куда идти, все хорошо, но стоит заблудиться — и начинаются большие проблемы.

В интернете размещена масса руководств по командам Git, но в этой статье работа Git рассмотрена глубже, чем просто изучение команд.

Это первая часть гайда по Git из блога Pierre de Wulf в переводе команды Mail.ru Cloud Solutions
Читать дальше →
Total votes 64: ↑53 and ↓11 +42
Comments 64

Руководство по Git. Часть №2: золотое правило и другие основы rebase

Reading time 6 min
Views 26K
VK corporate blog Git *
Translation
Посмотрим, что происходит, когда вы выполняете git rebase и почему нужно быть внимательным. 

Это вторая и третья части гайда по Git из блога Pierre de Wulf в переводе команды Mail.ru Cloud Solutions. Первую часть можно почитать тут.
Читать дальше →
Total votes 48: ↑48 and ↓0 +48
Comments 26

MVCC как один из способов обеспечения изоляции транзакций

Reading time 4 min
Views 8.8K
OTUS corporate blog High performance *System Analysis and Design *Database Administration *Industrial Programming *
Привет, хабр. Меня зовут Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Специально к старту нового набора на курс «Архитектор высоких нагрузок» я написал небольшой материал, которым с радостью делюсь с вами.



Введение


В прошлый раз мы поговорили с вами о том, к чему приводит ослабление изоляции транзакций в базах данных. Сегодня мы обсудим более подробно один из способов обеспечения этой самой изоляции и избегания рассмотренных аномалий. Как вы могли заметить, в прошлой статье часто выделялись два подхода: один был основан на том, что у записей есть некоторые версии, а второй на том, что мы будем запись так или иначе блокировать. Таким образом, выделяются два класса баз данных: версионники и блокировочники. Сегодня мы поговорим о том, что из себя представляют версионники, а рассмотрение блокировочников оставим на следующий раз.
Читать дальше →
Total votes 15: ↑10 and ↓5 +5
Comments 3

Блокировки как один из способов обеспечения изоляции транзакций

Reading time 4 min
Views 11K
OTUS corporate blog High performance *System Analysis and Design *Database Administration *Industrial Programming *
Привет, Хабр. Меня зовут Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Эту статью я подготовил специально к старту нового набора на курс «Архитектор высоких нагрузок».




Введение


В позапрошлый раз мы поговорили с вами о том, к чему приводит ослабление изоляции транзакций в базах данных. Сегодня мы обсудим более подробно один из способов обеспечения этой самой изоляции и избегания рассмотренных аномалий. Как вы могли заметить, в позапрошлой статье часто выделялись два подхода: один был основан на том, что у записей есть некоторые версии, а второй на том, что мы будем запись так или иначе блокировать. Таким образом, выделяются два класса баз данных: версионники и блокировочники. О том, что из себя представляют версионники, мы поговорили в прошлый раз, а сейчас я предлагаю обсудить блокировочники.
Читать дальше →
Total votes 11: ↑7 and ↓4 +3
Comments 0

Проблематика распределенных транзакций в контексте микросервисной архитектуры

Reading time 4 min
Views 5.6K
OTUS corporate blog High performance *Programming *System Analysis and Design *Industrial Programming *
Всем привет. Уже в сентябре OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный вебинар, в рамках которого я подробно расскажу о программе курса и формате обучения в OTUS. Записаться на вебинар можно тут.




Введение


Как известно, переход от монолита к микросервисной архитектуре вызывает ряд сложностей, связанных как с технической частью проекта, так и с человеческим фактором. Одной из самых сложных технических проблем вызывает обеспечение согласованности в распределенной системе.
Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Comments 7

Паттерн «сага» как способ обеспечения консистентности данных

Reading time 3 min
Views 13K
OTUS corporate blog High performance *Programming *System Analysis and Design *Industrial Programming *
Всем привет. Уже сейчас в OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный демо урок по теме: «Индексы в MySQL: best practices и подводные камни». Записаться на вебинар можно тут.





Введение


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

В прошлый раз мы обсудили причины возникновения проблем с согласованностью в микросервисной архитектуре, оптимистичный подход к обеспечению согласованности и обеспечение согласованности с применением двухфазного коммита.
Читать дальше →
Total votes 20: ↑14 and ↓6 +8
Comments 0
1