簡體   English   中英

處理本地Git Repo中的多個請求

[英]Handle multiple pulls in Local Git Repo

我有Sinatra服務,通過在被點擊時執行git pull來更新本地git repo。 既然是寫操作,所以我一次只希望發生一次git pull 如何有效檢測是否已發生pull 目前,我只是檢查.git目錄中是否存在index.lock文件。

if @file_obj.exists? "#{@data_dir}/.git/index.lock"
    @log.info('********* LOCKED **********')
else
  MUTEX.synchronize do
    @log.info('********* Inside Sync **********')
    @executor.run(git_pull_command, in: @data_dir)
  end
end

index.lock可能是您唯一需要擔心的文件。 由於您使用互斥鎖來同步操作,因此此代碼應該沒問題。

Git僅在需要唯一控制index一段時間(並防止其他Git進程破壞內容)時才真正創建index.lock文件。 這只會在拉動完成時發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM