重新启动分支机构是一个好主意吗?

时间:2016-03-24 12:11:47

标签: mercurial

在我开发的软件中,我有一个主要的稳定分支(<?php header('Content-Type: text/html; charset=UTF-8'); mysql_connect("localhost","root",""); mysql_select_db("test"); if (!empty($_FILES['csv']['size']) && $_FILES['csv']['size'] > 0){ $file = $_FILES['csv']['tmp_name']; $handle = fopen($file,"r"); mysql_query("SET NAMES utf8mb4"); mysql_set_charset('utf8mb4'); do { if ($data){ utf8_encode($data); mb_strtolower($data[0], 'UTF-8'); mb_strtolower($data[1], 'UTF-8'); mysql_query("INSERT INTO mytable (id,text) VALUES ( '".addslashes($data[0])."','".addslashes($data[1])."' )"); } } while ($data = fgetcsv($handle,1000,",","'")); header('Location: index.php'); die; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <form action="index.php" method="post" enctype="multipart/form-data" name="form1" id="form1"> <input name="csv" type="file" id="csv" accept-charset="utf-8"/> <button type=submit>UPLOAD</button> </form> </body> </html> default),我从中开发了新的想法。

我认为通常的方法是启动分支,处理它并放弃它(保持原样,关闭它,删除它)或合并到默认分支。

我的很多开发都是小测试,我很乐意在prod分支中进行,我最终会合并到dev,然后重新启动default中的新想法。

这种方法有哪些主要缺点?

我看到的主要内容是如果出现“坏”的情况该怎么办?我想丢弃的想法。我可以让现有的dev挂起,开始一个新的dev分支并最终为一个分支结束几个dev - 这听起来不是一个好主意(但客观地我知道原因)。

简而言之:重新启动一个分支,整体而言,一个好主意,并且由于这个问题可能会有多个HEAD

2 个答案:

答案 0 :(得分:1)

根本没有多头的问题。此外,如果你认为他们应该从明显的视线中消失,你可以关闭(因此实质上隐藏)旧的,被遗弃的头。

相反,我会为每个新想法或我的代码功能开始一个单独的头,这样我就可以并行地遵循不同的想法。它还允许将它们分别合并到主线中。

答案 1 :(得分:1)

我会将您提出的行动方案描述为具有非线性<!DOCTYPE html> <html> <head> <title>Print sample</title> <link rel="stylesheet" href="style4.css"> </head> <body> <h1>Section A</h1> <p>This is the first section...</p> <h1>Section B</h1> <p>This is the second section...</p> <div id="print-head"> Heading for paged media </div> <div id="print-foot"> Page: </div> </body> </html> 分支,即它可能具有未命名的头部,这些头部永远不会合并到主线中。 (将/*** Print sample ***/ /* defaults for screen */ #print-head, #print-foot { display: none; } /* print only */ @media print { h1 { page-break-before: always; padding-top: 2em; } h1:first-child { page-break-before: avoid; counter-reset: page; } #print-head { display: block; position: fixed; top: 0pt; left:0pt; right: 0pt; font-size: 200%; text-align: center; } #print-foot { display: block; position: fixed; bottom: 0pt; right: 0pt; font-size: 200%; } #print-foot:after { content: counter(page); counter-increment: page; } 中的工作反复合并到dev并不一定会使其在这种意义上成为非线性的)。 Mercurial在管理这样的配置方面没有任何问题,因此从技术上讲,它没有问题。

但是如果你觉得这会让你的历史难以导航,你可能想要使用更丰富的分支名称。折衷的解决方案是在dev中进行所有实验,但使用标签来区分和识别不同的分支头。当我放下一个想法(或者放弃它)时,我经常这样做。