Отслеживание фрагмента файла в двух местах с помощью git - PullRequest
1 голос
/ 06 мая 2010

У меня есть такой код, как

void myfunc()
{
  introduction();

  while(condition())
  {
    complex();
    loop();
    interior();
    code();
  }

  cleanup();
}

, который я хочу дублировать на две версии, а именно:

void myfuncA()
{
  introduction();
  minorchangeA();

  while(condition())
  {
    complex();
    loop();
    interior();
    code();
  }

  cleanup();
}

void myfuncB()
{
  introduction();
  minorchangeB();

  while(condition())
  {
    complex();
    modifiedB();
    loop();
    interior();
    code();
  }

  cleanup();
  extracleanupB();
}

git утверждает, что отслеживает контент, а не файлы, поэтому я должен сказать, что здесь есть фрагменты, которые являются общими как для myfuncA, так и myfuncB, так что при слиянии с вышестоящими потоками изменяется на myfunc, что эти изменения должен распространяться как на myfuncA, так и на myfuncB? Если да, то как?

Код мог бы быть написан так, чтобы myfuncAB делал правильные вещи в каждой точке, проверяя условия A или B, но это могло серьезно затруднить читаемость или производительность.

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

Не дублировать код . Это принцип СУХОЙ .

Ни мерзавец, ни кто-либо не помогут тебе в этом.

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

1 голос
/ 06 мая 2010

На самом деле, git это отличная система управления исходным кодом, но она редко делает программирование для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...