在我开发的软件中,我有一个主要的稳定分支(<?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
?
答案 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
中进行所有实验,但使用标签来区分和识别不同的分支头。当我放下一个想法(或者放弃它)时,我经常这样做。