1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          quilt基本使用

          來源:互聯網轉載 時間:2023-09-04 21:42:48

          一、簡介

          quilt是制作補丁和管理的工具。比如想用開源代碼做一些項目,我們如果直接在開源代碼里進行修改,等到下次開源代碼升級后,我們再將我們修改的部分轉移到新版本的開源代碼中就需要進行大量的新舊版本對比工作。那如果我們將這些改動使用補丁管理起來,待開源代碼升級后,直接將這些補丁打到新源碼中即可。

          ?

          二、使用過程

          2.1 環境準備

          環境中沒有quilt命令,ubuntu系統可以使用apt-get install quilt命令下載quilt工具。

          假設現在環境中僅有一個文件tset.c,文件內容如下:

          #include <stdlib.h> #include <stdio.h>?void main(char* args) {printf("Hello world!"); }

          2.2 創建一個patch文件過程

          第一步quilt new test.patch創建一個patch,命令執行結束之后,當前目錄下會出現一個patches和隱藏目錄.pc,具體的內容如下:

          ?

          patches 目錄下 有一個 series 文件, cat查看發現里面記錄了 test.patch, 是用來記錄使用patch的順序,使用的堆棧的記錄方式;

          .pc 是由quilt自己維護的,我們不用管。

          要知道上面的new命令并沒有創建文件,只是在Series里增加了記錄,top棧頂指針當前指向的是該patch,可以使用quilt top命令查看當前的棧頂patch。

          第二步使用quilt add <filename>添加關聯patch文件。

          生成patch的目的是為了為現有代碼文件(test.c)打補丁,但又不是直接在test.c上修改,因此需要將補丁文件(test.patch)與代碼文件(test.c)進行關聯。這個關聯用的是quilt add test.c命令,是將該源碼文件添加到補丁環境中,即該文件后面需要打補丁。

          注:因為當前最top的patch是test.patch,因此test.c關聯的就是test.patch

          如果添加錯了, 還可以使用quilt remote <filename>將文件移除,然后重新添加。

          第三步使用quilt edit <filename>命令編輯文件,進入的時候會讓選擇編輯器,這個看使用習慣。

          可以使用任何編輯器修改文件,但是在修改文件之前最好輸入一次quilt edit這個命令,修改文件如下:

          #include <stdlib.h> #include <stdio.h>int main(void) {printf("Hello world!");return 0; }

          第四步修改完代碼后我們再使用quilt refresh將改動保存到patch中,這時在patches目錄中才會多一個patch文件,這個文件就是我們最開始new新建的文件,內容是記錄我們修改之后差異信息,文件內容如下:

          ?修改后記得一定要用上面的命令,否則無法生成需要的文件。

          上面的過程是創建了一個patch文件,如果還需要繼續創建新的補丁,需要繼續重復上面的步驟,當有多個補丁之后,series文件里面就會是如下內容,

          然也可以使用quilt series命令查看,如下:

          2.3 使用patch

          當patch制作好之后,放到另一個新環境中去使用,只需要將patches目錄放到對應的工程下,然后使用quilt push -a 即可將所有的patch按照series中的順序全部打上補丁,如下:

          ?

          果想回退,就可以使用quilt pop往上一個補丁回退一次,如果希望所有的都一次性回退,那么就在后面加個-a選項quilt pop -a,效果如下,這時候如果看相關的代碼,就會發現代碼已經還原了。

          ?

          ?上面是按順序去使用patch,也使用patch <filename>? <? patches/xxxx.patch可以給指定文件使用指定的patch。但是需要注意,但是可能會出現問題,因為patch可能是依賴于另一個patch的,導致后面正常使用quilt push命令都無法正常使用,另外patch不屬于quilt下的命令,所以最好不要指定使用。

          2.4 查看一些信息

          2.4.1 查看應用/未應用patch

          看現在的代碼和原代碼有點區別,查看使用了哪個patch,使用quilt applied命令查看當前使用了哪個補丁,相反的,看哪些補丁沒有被使用,使用quilt unapplied。

          ?

          2.4.2? 查看有補丁管理的文件

          ?可以使用quilt files查看當前哪些文件有被quilt所管理,使用quilt patches test.c查看指定文件關聯的補丁情況,無論補丁有沒有被使用都會關聯。

          三、問題

          3.1 如何重命名patch文件名

          使用命令rename

          quilt rename [-P patch] <new_name>

          例如:

          quilt rename -P? patches/00-bt.patch? patches/00-bt-addprint.patch

          3.2 在使用patch時, 出現Hunk

          • 現象:

          ?

          • 問題原因:

          這種情況表示patch也是打成功了,但是存在一些偏移,或者上下文不正確的情況。

          • 修改方法:

          首先要知道patch中的各部分內容含義,如下是一段patch,其中##后是添加的說明,真實patch中不存在該部分:

          Index: src_build/src/detect-engine-loader.c ##表示指定的文件 ===================================================================##分割符 --- src_build.orig/src/detect-engine-loader.c +++ src_build/src/detect-engine-loader.c @@ -44,6 +44,10 @@ ##表示偏移位置,44表示起始行,6表示原來這里行數;44表示增加patch之后的起始行,10表示增加patch之后這里顯示行數#include "util-threshold-config.h" ##表示原文件第44行 內容#include "util-path.h"+#ifdef USE_PATCH ##表示增加的內容 +#include "ndr-disable-rule.h" +#endif +#ifdef HAVE_GLOB_H#include <glob.h>#endif @@ -302,6 +306,10 @@ int SigLoadSignatures(DetectEngineCtx *d ##302表示下面一行在源碼中的起始行,306表示上面patch打進去之后下面一行在源碼的位置fp_engine_analysis_set = SetupFPAnalyzer();rule_engine_analysis_set = SetupRuleAnalyzer();} + +#ifdef USE_PATCH + LoadTenantDisableRule(de_ctx); +#endif/* ok, let's load signature files from the general config */if (!(sig_file != NULL && sig_file_exclusive == TRUE)) { Index: src_build/src/detect-sid.c =================================================================== --- src_build.orig/src/detect-sid.c +++ src_build/src/detect-sid.c @@ -31,6 +31,9 @@#include "util-debug.h"... ...

          所以修改問題,只需要根據給定的前后行在源碼中是否有變化,然后修改行號即可。

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          js里如何添加A鏈接標簽?引用jquery s js添加到標記的頁面。在html的ltscriptgt標記中,輸入js代碼:$(body)。追加(lta hrservlet中如何添加超鏈接?直接將hr超鏈接javascript:void(0),點擊超鏈接不跳轉?超鏈接javascript:void(0),點擊超鏈接不跳轉。要解決這個問題,可以參考以下做法:1.在鏈接(href)中直接使用java...

          電腦上QQ收不到在線文件和離線文件怎么回事?可能對方網絡充足快或則是早讀取在騰訊的某個網盤上,所發的文件真接秒傳,而現在你的卻系統設置了不不能收不到通過秒傳郵箱里的文件,所以拒絕接收。也可以檢查幫一下忙你的設置:電腦客戶端主面板左下角齒輪圖標系統設置--文件管理--允許可以接收實際秒傳郵箱里的文件如果沒有設置完依舊拒絕接收,我建議你咨詢騰訊客服。為什么QQ發送離線文件很慢?傳送離線模式文件慢要注意...

          ipad第5代是哪年生產?2017年第五代ipad問世,2017年3月21日發布,2017年3月24日上市。第五代ipad采用鋁鎂合金一體式結構;前框為白色或黑色;有銀色、金色和深灰色可選。第五代ipad的屏幕尺寸為9.7英寸,機身高度為240毫米(9.4英寸),寬度為169.5毫米(6.6英寸),厚度為7.5毫米(0.29英寸)。WLAN型號重469克(1.03磅),WLAN蜂窩網絡型號重478...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>