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

var Col1 = [1];
var Col2 = [1, 2];
var Col3 = [1, 2, 3];
var Col4 = [1, 2, 3, 4];
var Col5 = [1, 2, 3, 4, 5];
var columns = [Col1, Col2, Col3, Col4, Col5];

addColumnsToTable(columns);
addColumnsToTable(columns);

function addColumnsToTable(columns) {
  var rowsCount = Math.max.apply(null, columns.map(x => x.length));

  var res = '';
  for (var i = 0; i < rowsCount; i++) {
    var row = '<tr>';
    for (var column of columns)
      row += `<td>${column[i] || ''}</td>`;
    row += '</tr>';
    res += row;
  }

  document.getElementById('content').innerHTML += res;
    
  var head = document.getElementById('head');
  if(!head.innerHTML.trim())
    head.innerHTML = columns.map((x, i) => `<th>Col${i + 1}</th>`).join('');  
}
table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
}
#head > th{
  color: red;
}
<table>
  <thead>
    <tr id='head'>
    </tr>
  </thead>
  <tbody id='content'>
  </tbody>
</table>

9
задан Alex 26 November 2008 в 13:55
поделиться

2 ответа

Я сделал этого мерзавца использования svn с моей разработкой, сделанной в репозитории мерзавца. Удаленная разработка сделана в подверсии. Я сделал мерзавца svn клоном репозитория подверсии, который я продвигаю в реальный репозиторий мерзавца. cronjob выполняет "мерзавца svn, повторно основывают && нажатие мерзавца" время от времени для создания зеркала мерзавца подверсии repo.

Для слияния изменений подверсии у меня есть 2 пультов ДУ в моей локальной копии мерзавца - "локальная разработка", источник и "от подверсии зеркально отражает" источник. Каждый раз, когда я чувствую потребность, я могу объединить изменения от зеркала подверсии в наше дерево разработки. Локальные изменения не затронуты, они живут независимо и не портят зеркало svn.

Я использовал gitosis, чтобы настроить и администрировать репозитории мерзавца. Шаги были бы чем-то вроде этого (из памяти, может быть неправильным):

# set up the mirror
git svn clone -s $SVN
git remote add origin git@$MACHINE:svnmirror.git
git push
# + cron job to do git svn rebase && git push every N hours/minutes

# set up the local working copy for development
git clone git://$MACHINE/svnmirror.git
# that's an anonymous, read only clone 
# no push to the svn mirror for developers - only cronjob user can push there
git remote add newproject git@$MACHINE:myproject.git
git push newproject
# now do the real deal
git clone git://$MACHINE/myproject.git
# hack hack hack
git push # origin master not needed
git remote add svnmirror git://$MACHINE/svnmirror.git
git merge svnmirror/master
git push
6
ответ дан 4 December 2019 в 21:52
поделиться

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

Единственная трудная вещь состоит в том, что необходимо отслеживать изменения, от которых Вы уже объединились из основного репозитория.

Это могло быть похожим на это:

svn merge -r X:Y baseRepositoryURL // merge from base repo
svn commit                         // commit the changes to local repo
svn merge -r Y:Z baseRepositoryURL // merge from base repo
svn commit                         // commit the changes to local repo

Где X пересмотр Вашего начального контроля, Y является главным пересмотром, время первого слияния и Z является главным пересмотром время второго слияния. Вы видите шаблон. Кроме того, важно, чтобы Вы были в базовом каталоге Вашего локального контроля когда issueing команды.

3
ответ дан 4 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

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