Номер ошибки Комментарии [Закрыто] -- version-control поле с участием bug-tracking пол Связанный проблема

Bug number comments [closed]


8
vote

проблема

русский
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»>
закрыт . Этот вопрос находится на основе мнения . В настоящее время он не принимает ответы.

<Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 5.6A6.31 6.31 0 002.39 5.75C.49.39.76.93.76 1.5V.24C0 1.07.89 1.9 1.92 1.92.75C1.04 0 1.92-.83 1.92-1.9v-. 2C0-.6.26-1.15.7-1.6.26-1.15.7-1.48A6.32 6.32 0 0015 6.37ZM4.03 5.85A4.49 4.49 0 018 2.02A4.48 4,48 0 015 4.36 4.3 4,3 0 01-1.72 3.44C-01-1.74-1.5 1.9- 1.5 3.08V.1H7.2V-.14C0-1.23-.6-2.34-1.3-1.32.32-1.53-3.07A4.32.32.32 0 01-1.64-3.94ZM10 18A1 1 0 000-2х7А1 1 0 100 2H3Z ">

Хотите улучшить этот вопрос? Обновление вопроса, так что его можно ответить на факты и цитаты от Редактирование этого поста .

Закрыто 1 год назад .

Улучшить этот вопрос .

Почему вы добавили

// ошибка 1024

Комментарии к базу кода контролируемого источника? Большинство систем отслеживания отслеживания ошибок и исходных устройств лучше оснащены для отслеживания этой информации. В контроле источника с проверкой может использоваться метка или комментарий. В трекере ошибки номер ревизии может быть добавлен в разрешение ошибки. Так зачем комментировать код? Особенно с тех пор, как релевантность этих комментариев очень короткая, и они имеют тенденцию создавать измельчение кодовой базы.

Английский оригинал

Why would you add

//Bug 1024

comments into a source controlled code base? Most bug tracking and source control systems are better equipted to keep track of this information. In source control, a label or comment can be used with the checkin. In a bug tracker the revision number can be added to the bug's resolution. So why comment the code? Especial since these comments relevancy is very short lived and they tend to build up littering the code base.

</div
     
     
     

Список ответов

8
 
vote
vote
Лучший ответ
 
<Р> Я нашел один из этих полезного другого дня в нашей базе кода. <Р> Я сказал: «почему он вызов функции инициализации во второй раз, это в конце рабочего процесса ??» <Р> ошибка комментарий отпусти меня правильно описание выпуска. Когда я перестроилась код, я был уверен, чтобы включить эту ошибку в моих тестах, и не вводить ее вновь. <Р> Хотя я скажу, что в целом я согласен с вами, и не вставить те себя. <Р> Я бы предпочел, чтобы разработчик в вопросе исправлена ​​ошибка в более осмысленно, так что я не придется беспокоиться о коде, в первую очередь.
 

I found one of these helpful the other day in our code base.

I said "why is he calling the initialization function a second time, this late in the workflow??"

The bug comment let me go right the issue description. When I retooled the code, I was sure to include that bug in my tests and didn't reintroduce it.

Although I will say that in general I agree with you and don't insert those myself.

I would have preferred that the developer in question fixed the bug in a more meaningful way, so that I didn't have to wonder about the code in the first place.

</div
 
 
 
 
4
 
vote
<Р> В конце концов, я думаю, что это плохая практика. Это лучше включить почему ошибка существует (Foos типа Y не обладает свойством Z). Вы можете включить «больше BUGID 12345.» наряду с этим, если вы хотите. <Р> Если вы интегрированием на нескольких уровнях, вид исходного кода в ПРОФ можно связать непосредственно с BUGID.
 

Ultimately, I think it's a bad practice. It's better to include why the bug exists (foos of type Y don't have property Z). You can include a "more in BugId 12345" along with that if you want.

If you're integrating on multiple levels, a source code view in trac can link directly to the BugId.

</div
 
 
3
 
vote
<Р> Чистая лень. Конечно, это занимает больше времени в долгосрочной перспективе, но в краткосрочной перспективе «// Буг 1024» не требует никаких усилий. Чем больше код, тем хуже это.
 

Pure laziness. Sure, it takes more time in the long run, but in the short run "//Bug 1024" takes no effort whatsoever. The more code you have, the worse this is.

</div
 
 
3
 
vote
<Р> Представьте, у вас есть новая ошибка, вы выследить с изменением пересмотра 12345. Вы смотрите на журналы и это сразу говорит о том, что ошибка 1024 была причина внесения изменения. <Р> Вы можете пойти и посмотреть на 1024, чтобы увидеть, что, почему и когда, прежде чем сделать новое исправление. - в «один, чтобы исключить их всех» <Р> Если номер ошибка не в фиксации сообщение, вы должны затем искать ошибки, что коммит фиксированный - и это может быть несколько (если ошибка получает сообщили о более чем один раз) .
 

Imagine you have a new bug that you track down to the change in revision 12345. You look at the logs and it immediately tells you that Bug 1024 was the reason the change was made.

You can then go and look at 1024 to see what, why and when before making a new fix - the 'one to rule them all'.

If the bug number isn't in the commit message, you have to then search for the bug that a commit fixed - and that might be several (if the bug gets reported more than once).

</div
 
 
3
 
vote
<Р> Я думаю, что это тот случай, «У меня есть молоток, который должен быть гвоздь». Ваш текстовый редактор или IDE это не единственный инструмент для управления кодом. <Р> История лучше всего поддерживается извне к коду. Значение кода должно быть описано в комментариях, если не сразу. <Р> Я согласен, что номера ошибок должны быть в системе управления версиями сообщения фиксации.
 

I think this is a case of "I have a hammer, that must be a nail". Your text editor or IDE is not your only tool for managing the code.

History is best maintained externally to the code. The meaning of the code should be described in comments when not immediately obvious.

I agree that bug numbers should be in source control commit messages.

</div
 
 
3
 
vote
<Р> Вы никогда не должны добавлять только номер ошибки. Вы должны добавить номер ошибки и предмет, и все определители, если вы сделали несколько возвратов для одной ошибки: <Р> Ошибка 1111 - Foo лопнул на 64-битных системах. Fix # 2, потому что он был вновь открыт после слияния с стволом.

В некоторых системах ошибка интеграции чисел. В mxr.mozilla.org номер ошибки в CVS журнал дисплей автоматически волшебно превратился в ссылку на bugzilla.mozilla.org номер. Когда вы копаться в коде, это огромная экономия времени. Я думаю, что FogBUGZ имеет аналогичную функцию ...

<Р> Кроме того, даже если ваша система не делает, это часто помогает, потому что никто не хочет видеть весь контекст изменений в комментариях, то есть то, что ошибка трекера для.
 

You should never add just the bug number. You should add the bug number and the subject, and any qualifiers if you made multiple checkins for a single bug:

Bug 1111 - Foo busted on 64bit systems. Fix #2 because it was re-opened after the merge to trunk.

Some systems have bug number integration. In mxr.mozilla.org the bug number in the cvs log display is auto-magically turned into a link to the bugzilla.mozilla.org number. When you are digging in the code, this is a huge timesaver. I think that Fogbugz has a similar feature...

Also, even if your system does not, it often helps because nobody wants to see the entire context of the change in comments, that is what the bug tracker is for.

</div
 
 
2
 
vote

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

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

Иногда код изменен для реализации обходного пути к определенной проблеме с поведением приложения. Иногда введенный обходной путь никоим образом не логично. Часто случается, что, когда код обновляется кем-то другим, этот «плохой» кусок кода удаляется как часть рентабельных усилий.

Таким образом, маркировка кода как принадлежность к конкретным ошибкам, делает его видимым во время повторного факторинга, подскаженного разработчику просмотреть описание ошибки перед изменением кода. Это также помогает в ситуации, когда ошибка вновь открыта - если вы должны изменить одну и ту же часть кода несколько раз, вы можете рассмотреть время в инвестировании в альтернативном решении.

P.S. Вы можете рассмотреть Это в статье MS Office от Joel On Ms Software. Насколько я знаю, код MS Office и MS Windows полон аналогичных комментариев, которые объясняют решения, сделанные разработчиками, которые давно прошли.

 

I would agree with you that the comment like this is not really helpful and is too brief.

It is however extremely useful and important to comment the code with references to the records in the defects tracking system (or to that extend to any KM repository you might have).

Sometimes a code is changed to implement a workaround to a certain issue with the application behaviour. Sometimes the introduced workaround is in no way logical. It often happens that when a code is updated by someone else this 'bad' piece of code is removed as a part of re-factoring effort.

So marking a code as belonging to a particular bug-fix makes it visible during the re-factoring, prompting the developer to review the bug description before changing the code. It also helps in the situation where the bug is re-opened - if you have to change the same part of the code several times you might consider investing time in an alternative solution.

P.S. you might consider this article about MS Office from Joel On Software helpful. As far as I know the code of MS Office and MS Windows is full of similar comments which explain decisions made by the developers long gone.

</div
 
 
2
 
vote

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

 

I find it useful when explaining code that would otherwise seem wrong, and also for use in commit messages.

</div
 
 
2
 
vote

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

Что я нахожу полезным, использует идентификатор дефекта как часть имени в автоматизированных тестах:

 <код> [TestFixture] public class Release_1_2_Bugfixes {   [Test]   public void TestBug42()   {     Assert.AreEqual(42, CalculateAnswerToLifeUniverseAndEverything());   } }   

Я видел Другие проекты < / a> делать то же самое.

 

I don't do that. I can't think of a good reason why you would put the defect ID in code. I'll put that on the release notes/changelog instead.

What I do find useful is using the defect Id as part of the name on the automated tests:

[TestFixture] public class Release_1_2_Bugfixes {   [Test]   public void TestBug42()   {     Assert.AreEqual(42, CalculateAnswerToLifeUniverseAndEverything());   } } 

I've seen other projects doing the same thing.

</div
 
 
2
 
vote

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

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

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

EDIT : Я имею в виду конкретно, чтобы положить их блоком кода, который является необычным или нуждается в дополнительном контексте. Это не полезно или необходимо прокомментировать каждую типоричу, вы делаете: -)

 

I'm surprised at how many people are opposed to this. My personal feeling on this is that these are a very good idea. I agree with an earlier comment that it should include more than just the bug number, and preferably include a short summary and link to the bug tracking system if appropriate.

The benefit to these comments is only obvious in an older project with history and a large number of previous bug fixes. You don't have to make these comments everywhere, but they are very very helpful when placed before a block of code that might not make sense without context. In any kind of reasonably complex system, there will be snippets of code that seem illogical or unnecessary without context.

Due to interactions with the system or old workarounds, the code is necessary. In order to prevent someone later reintroducing a patched bug, it's extremely helpful to denote the bug the code block is designed to fix, preferably with some type of explanation attached. Otherwise you're depending on someone checking the commit history carefully for a reason recorded in the commit log, which is highly unlikely, especially if someone is refactoring code.

EDIT: I'm referring specifically to putting these with a block of code that is unusual or needs the additional context. It's not helpful or necessary to comment every single typo fix you make :-)

</div
 
 
1
 
vote

Я сделал это до того, как Visual Studio 2008 отправляется с аннотацией. Он был полезен, когда оглядываясь на старый код, чтобы сразу увидеть, что там, по крайней мере, было рассмотрено определенное решение кода.

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

 

I did this up until Visual Studio 2008 shipped with annotation. It was useful when looking back on old code to immediately see that there at least was thought behind a particular code decision.

Yes, I know you can do compare with previous versions, but that is such a pain in the butt when you just need a quick feel good about minor code updates.

</div
 
 
1
 
vote

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

 

If you're browsing through unfamiliar source code, and you see something unobvious, it's nice to know the reason. It's a judgement call though, not every bug fix needs such an explanation - probably most can get away without it.

</div
 
 
1
 
vote

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

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

Кроме того, ситуации возникают, когда есть веская причина для перемещения кода из одного класса в другую или переименовать файлы, что сделало бы даже сложнее найти корневой причиной причина определенного раздела кода (переименование не так Большая часть проблемы с SVN, но боль с CVS).

 

If there is enough reason to believe somebody would want to know the bug number when looking at part of the code, adding a comment mentioning the bug can be quite nice (hopefully it will paraphrase the important bits of the bug as well, however).

Yes, source control commit messages should also contain the bug numbers, and looking through the revision logs can give you the same information... but if the same part of the code is changed multiple times, but the details learned from the initial bug still applies, it might take a while to find the original change to ever learn about that bug.

Also, situations arise when there is a good reason to move code from one class to another, or to rename files, which would make it even harder to find the root of the reason behind a certain section of code (renaming not so much of an issue with SVN, but a pain with CVS).

</div
 
 
1
 
vote

Вы попали на гвоздь на голове с «релевантностью очень коротко жили, и они имеют тенденцию наращивать мусорную базу кода».

Каждый бит бесполезной Cruft, который создает в исходных файлах, делает их немного менее читаемыми и сложными для обслуживания. Удалить все, что не добавляет значение. «BUG 12345» имеет мало ценности сейчас и не будет иметь ничего через несколько недель.

 

You hit the nail on the head with "relevancy is very short lived and they tend to build up littering the code base."

Every bit of useless cruft that builds up in source files makes them a little less readable and difficult to maintain. Delete everything that doesn't add value. "Bug 12345" has little value now, and will have none in a few weeks.

</div
 
 
1
 
vote

Мы работаем в широкомасштабной системе со многими разработчиками и множественными выпущенными ветвями.

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

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

 

We work on a large scale system with many developers and multiple released branches.

These bug reference comments can actually be quite useful during porting from one branch to another especially since the SCM system that we use is very feature poor and commit comments are hard to get at or and could be quite old.

If the fix was simple then it may not need a bug marker. If it is non-obvious it may make more sense to refer to a Bug then to write a long explanation in a comment section.

</div
 
 
0
 
vote

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

Беда действительно начинается, когда люди делают исправления ошибок, которые перекрывают предыдущее исправление ошибки. Затем вы имеете номера ошибок, маркирующие раздел кода, которые просто неправильно или вводят в заблуждение.

 

I dislike this sort of graffiti. Like other distasteful life forms they accrete over time, choking the code base.

The trouble really begins when people make bug fixes which overlap a previous bug fix. You then have bug numbers labeling a section of code which are simply wrong or misleading.

</div
 
 
0
 
vote

Этот тип комментариев - это очень полезно: что происходит, когда вы меняете инструменты отслеживания ошибок или исходных элементов? Ссылка на BZ1722 VS FB3101 сообщит вам, какой инструмент отслеживания для проверки (например, Bugzilla или Fogbugz).

 

This type of commenting IS very helpful: what happens when you change bug-tracking or source-control tools? A reference to BZ1722 vs FB3101 would tell you what tracking tool to check (Bugzilla or FogBugz for example).

</div
 
 
0
 
vote

Это хорошая вещь!

Человек, который смотрит на код, вряд ли оценит полную историю Кода и, скорее всего, отменит очень важное изменение, потому что они, возможно, не работали в этой области кода до. Это может объяснить код, который в противном случае выглядит безумно или требование к клиентам, которое эквивалентно причудливо.

Вы не всегда можете запечатлеть минуту, учитывая требования клиентов через архитектуру и код, особенно когда они просят что-то глупое. Следовательно, вы начинаете с разумного, а затем уточните или взломать код в глупое, когда вы вынуждены это сделать, номера ошибок резервят резервную копию намывания Crazy Code.

 

It's a good thing!

The person who is looking at the code is unlikely to appreciate the full history of the code and is likely to undo a very important change because they may not have worked in this area of the code before. It can explain code that otherwise looks insane or a customer requirement that is equivalently bizarre.

You cannot always capture the minute particulars of the clients requirements through architecture and code, especially when they ask for something stupid. Hence you start with the sensible and then refine or hack the code into the stupid when you are forced to do so, the bug numbers back up the intent of the crazy code.

</div
 
 

Связанный проблема

0  Как создать GIT Post-Teal Clood, который отправляет электронное письмо, если конкретный файл был изменен?  ( How to create a git post receive hook which sends an email if a particular file ) 
Я хочу добавить следующее поведение в репозиторий Git, управляемый Gitolite. На что-то подтолкнутое к мастеру (может игнорировать другие ветви), я хочу обнару...

1  Я совершил неправильный филиал Git. Как очистить?  ( I have been committing to wrong git branch how to cleanup ) 
Я использую Git / Github и случайному, я совершил в «главный» ветвь вместо «4.2». Теперь я создал отдельный филиал, который является то, какой «мастер» должен...

3  Прошедшая первая база с пунктами TortoiseSVN  ( Getting past first base with tortoisesvn ) 
Хорошо, я был убежден, что SVN - это способ пойти в предыдущая публикация , но я еще не видел эпопания. Я не уверен, как я устанавливаю подрыв для моей среды...

10  Visual Studio Check-In Tool изменилась на «Регистрация сейчас»  ( Visual studio check in option changed to check in now ) 
При проверке файлов с использованием VS 2008, я обычно имею опцию «Регистрация ...» недавно, это изменилось на «Регистрация», и поведение отличается (мне не д...

8  Откатываясь в старую редацию в Mercurial (например, сброс Git)  ( Rolling back to an old revision in mercurial like git reset ) 
Использование git, я могу выбросить ошибку или случайные коммита, используя команду, как <код> git reset --soft HEAD^ Что сбрасывает текущую ветку (напр...

163  изучение истории удаленного файла  ( Examining history of deleted file ) 
Если я удаляю файл в Subversion, как я могу посмотреть на историю и содержание? Если я попытаюсь сделать <код> svn cat или <код> .Offset(1,0)0 в несуществую...

1  Странные результаты с использованием P4COM  ( Weird results using p4com ) 
Я использую P4Com, чтобы общаться с нашим сервером Perforce. Я написал небольшую утилиту для упрощения нашего QA, какие файлы изменились с одного выпуска на д...

0  Какой лучший инструмент для управления версиями в среде OS 400 для RPG и COBOL [закрыты]  ( What is the best tool for version control in os 400 environment for rpg and cobo ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

8  Есть ли лучший способ написания GIT Pre-Commit Compart Coint, чтобы проверить любой файл PHP в фиксации для ошибок разбора?  ( Is there a better way of writing a git pre commit hook to check any php file in ) 
Что я имею до сих пор, это <код> #!/bin/sh php_syntax_check() { retval=0 for i in $(git-diff-index --name-only --cached HEAD -- | grep -e '.php$');...

2  Управляющие ветви в Subversion  ( Managing branches in subversion ) 
Я не думаю, что я делаю что-то правильно. Я использую Subversion как мои VCS для веб-сайта наших организаций. Я являюсь единственным разработчиком, и я исполь...

4  Управление командой разработки на общий веб-сайт  ( Managing team development on shared website ) 
Мне нужно знать лучший способ управления веб-разработкой команды на общим сервере (HostGator). Я сделал некоторую отдельную веб-разработку на общий сервер в...

7  Рефакторинг хорошо с контролем версий  ( Refactoring nicely with version control ) 
Свой работник СО попросил меня просмотреть некоторые из моих кодов, и он прислал мне файл diff. Я не новичок для дифференциров ​​или контроля версий в целом, ...

63  Есть ли миграционный инструмент от CVS в Git?  ( Is there a migration tool from cvs to git ) 
Я намерен переключаться от CVS в Git. В случае SVN, кажется, <код> cvs2svn . Есть ли подобный инструмент, чтобы легко мигрировать из CVS в Git? ...

35  Какие Windows SVN сервер должен использовать? [закрыто]  ( Which windows svn server should i use ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос находится на основе мнения . В настоящее вре...

14  Используете ли вы контроль версий, отличный от исходного кода? [закрыто]  ( Do you use version control other than for source code ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос находится на основе мнения . В настоящее вре...

Связанный проблема

0  Как создать GIT Post-Teal Clood, который отправляет электронное письмо, если конкретный файл был изменен? 
1  Я совершил неправильный филиал Git. Как очистить? 
3  Прошедшая первая база с пунктами TortoiseSVN 
10  Visual Studio Check-In Tool изменилась на «Регистрация сейчас» 
8  Откатываясь в старую редацию в Mercurial (например, сброс Git) 
163  изучение истории удаленного файла 
1  Странные результаты с использованием P4COM 
0  Какой лучший инструмент для управления версиями в среде OS 400 для RPG и COBOL [закрыты] 
8  Есть ли лучший способ написания GIT Pre-Commit Compart Coint, чтобы проверить любой файл PHP в фиксации для ошибок разбора? 
2  Управляющие ветви в Subversion 
4  Управление командой разработки на общий веб-сайт 
7  Рефакторинг хорошо с контролем версий 
63  Есть ли миграционный инструмент от CVS в Git? 
35  Какие Windows SVN сервер должен использовать? [закрыто] 
14  Используете ли вы контроль версий, отличный от исходного кода? [закрыто]