Опасно ли git-svn dcommit после слияния с git?

Посмотрите на документацию :

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

[110 ] blockquote>

Ваша инструкция говорит начинать с байта 10, а не строки 10.

Если вы хотите пропустить строки, вам придется вести их подсчет самостоятельно.

const LineByLineReader = require("line-by-line");
const lr = new LineByLineReader("data.txt");
let lineCount = 0;

lr.on("line", function(line) {
    lineCount++;
    if (lineCount < 10) {
        return;
    }
    console.log(line);
});

133
задан code_dredd 4 May 2016 в 23:07
поделиться

3 ответа

Создание локальных ответвлений определенно возможно с мерзавцем-svn. Пока Вы просто используете локальные ответвления для себя и не пытаетесь использовать мерзавца для слияния между восходящим потоком svn ответвлений, необходимо быть в порядке.

У меня есть "основное" ответвление, которое я использую для отслеживания svn сервера. Это - единственное ответвление что я dcommit от. Если я делаю некоторую работу, я создаю ответвление темы и работаю далеко над ним. Когда я хочу фиксировать его, я делаю следующее:

  1. Передайте все ответвлению темы
  2. мерзавец svn переоснова (разрешают любые конфликты между Вашей работой и svn),
  3. ведущее устройство контроля мерзавца
  4. мерзавец svn переоснова (это делает следующий шаг слиянием ускоренной перемотки вперед, см. комментарии Aaron ниже),
  5. слияние мерзавца topic_branch
  6. разрешите любые конфликты слияния (не должно быть никого в этой точке),
  7. мерзавец svn dcommit

У меня также есть другая ситуация, где я должен поддержать некоторые локальные изменения (для отладки), который никогда не должен продвигаться до svn. Для этого у меня есть вышеупомянутое основное ответвление, но также и ответвление, названное "работой", где я обычно работаю. Ответвления темы отклонены работа. Когда я хочу фиксировать работу там, я, ведущее устройство контроля и использование избирательно подходят к выбору для выбора фиксаций от ответвления работы, что я хочу согласиться на svn. Это вызвано тем, что я не хочу фиксировать три локальных фиксации изменения. Затем я dcommit от основного ответвления и переосновы все.

Это - стоящее выполнение git svn dcommit -n сначала, чтобы удостовериться, что Вы собираетесь фиксировать точно, что Вы намереваетесь фиксировать. В отличие от мерзавца, переписывая историю в svn твердо!

Я чувствую, что должен быть лучший способ объединить изменение на ответвлении темы при пропуске тех локальных фиксаций изменения, чем использование избирательного подхода, поэтому если бы у кого-либо есть какие-либо идеи, им были бы рады.

49
ответ дан 24 November 2019 в 00:01
поделиться

Безопасный способ слить ветки svn в git - использовать git merge --squash. Это создаст единый коммит и остановит вас, чтобы добавить сообщение.

Допустим, у вас есть ветка svn темы, называемая svn-branch.

git svn fetch
git checkout remotes/trunk -b big-merge
git merge --squash svn-branch

на этом этапе у вас есть все изменения из svn-branch, сжатые в одна фиксация ожидает в индексе

git commit
6
ответ дан 24 November 2019 в 00:01
поделиться

Перебазируйте локальную ветку git на основную ветку git, затем dcommit, и это будет выглядеть так, как будто вы выполнили все эти коммиты последовательно, чтобы люди svn могли видеть это линейно как они привыкли. Итак, если у вас есть локальная ветка с именем topic, вы можете сделать

git rebase master topic

, который затем воспроизведет ваши коммиты поверх основной ветки, готовой для dcommit

5
ответ дан 24 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: