-g:none
进行编译以省略调试信息。这应该可以处理行号更改 - 但是如果您正在更改名称,则这是更严重的更改,并且确实可能是破坏性更改。编辑:回应jtsampson的编辑。你的问题不是如何做到,而是“如何说服管理层它是安全的”。也许你应该问,“它是安全的吗?如果是,如何安全地实现它。”我的陈述指出了你的问题的讽刺之处,即你假设它是安全的,却不知道如何做到。我欣赏重新格式化的技术方面,但我要指出的是,在任何非微不足道的事情中都存在风险,除非你把正确的人放在那个位置,否则它可能会被搞砸。这项任务会减少程序员的其他任务吗,使他们分心几天?它会与其他编码器未提交的修订冲突吗?源代码是否正在进行修订?是否有任何嵌入式脚本是空格敏感的,例如Python?任何东西都可能产生意想不到的副作用;对于我们的环境来说,很难得到一个没有人在分支上工作的时间窗口,大规模的重新格式化会使他们的合并变得非常丑陋。因此,我不喜欢大规模手动或自动重新格式化。
采取务实的方法:
我会用四个词。
源代码控制。 单元测试。
嗯,这样做并不安全,而且你不太可能说服他们。作为一个管理了很多开发项目的人,我永远不会在任何商业代码库中考虑采用它,因为任何收入都依赖于此。我并不是说按照你喜欢的方式编写代码没有优点,但你的格式化很可能涉及到代码更改的部分,几乎不可能完全匹配。这意味着即使风险很大,获得的好处却微不足道。如果你必须这样做,请一边修复代码缺陷,一边逐步进行,不要一次性全部修改。对于你们程序员来说这可能是一个好决定,但对于管理层来说这将是一个可怕的决定。
在重新格式化后,您的单元测试是否通过?如果是,那么您已经向管理层推销了这个想法!
如果您正在处理未经测试的代码,则需要做出更艰难的论据。
这是技术与业务不匹配的典型例子。
技术人员想这么做是因为它可以使代码难以阅读,但除非情况极其糟糕,否则真正的原因是它冒犯了普通程序员通常敏感和审美的特点。
业务人员希望管理风险。如果有一些好处并且没有商业利益,那么风险可以承担,除非你认为未来使用重新格式化的源代码进行开发更便宜、更快或者更安全,但老实说这很难说服人。
几乎任何变化都会带来风险。这里的风险是较小的,但从管理层的角度来看也不是完全不存在的,并且几乎没有好处。
还有另一个问题需要考虑:这种改变可能会对源代码控制造成混乱。由于最近的更改是重新格式化,所以跟踪谁更改了什么变得更加困难,您需要比较修订版本,这比简单的“责备”或“注释”命令更加繁琐。
此外,如果您有多个活动分支,代码的重新格式化将对您的合并造成混乱。
如果您使用Eclipse作为开发平台,可以将所有代码加载到本地工作空间中。通过向管理层展示“Problems”选项卡,证明没有问题。
然后,逐个右键单击并格式化每个项目-再次证明不会引入任何问题。
您可以在本地工作站上进行此操作,而不会对存储库造成任何损害。
老实说,如果您的管理层如此缺乏技术能力以至于会害怕格式化源代码,那么在格式化后未出现问题证明代码仍然良好应该足以说明问题。
更不用说,您可能会在源代码控件中标记旧版本,对吧?