2015-10-28 41 views
5

我們有一個私人的Atlassian Stash服務器託管我們的git回購。如何在所有分支中的所有文件中搜索(grep)Stash中的所有回購?

我怎樣才能在所有分行

  • 在所有回購
  • 跨越

    • 所有源文件
    • 搜索

    我真的想避免局部檢查了所有回購的過程中,做git pull然後遞歸grep

    一些插件可以在Atlassian Stash中用於「企業搜索」,但它們並不適合我們。

    如果你已經得到了這個工作,請分享步驟來設置它:) :)

    +0

    現在市場上有一個付費插件,它爲Stash(Bitbucket)添加了搜索功能。 https://marketplace.atlassian.com/plugins/com.mohamicorp.stash.search-for-stash/server/overview –

    回答

    3

    我們還需要實現我們所有的藏匿處項目的搜索。研究各種選擇,最好的實施方案是安裝專用的OpenGrok服務器。
    服務器的crontab運行一個腳本每10分鐘做了以下內容:使用Stash API

  • 對於每一個項目的所有項目的

    1. 獲取列表,讓所有倉庫(再次使用API​​)
    2. 對於每個存儲庫,克隆或拉是否存在
      • 如果你需要每一個分支,找到所有分支機構和克隆每個分支
    3. 一旦所有來源是準備好了,運行OpenGrok索引

    它可以對我們非常好,而且很容易實現。
    我認爲最終,這應該使用內置附加組件完成,但當時沒有找到。

    我希望這會有所幫助。

  • +0

    沒錯。我真的想避免「拉回每一個回購」的事情。你還考慮過其他什麼選擇? – vikingsteve

    +0

    如果它已經被克隆,那麼拉回每個回購非常快。我們也同時做到這一點,所以速度非常快。其他選項主要是找到內置的附加組件(沒有找到)並執行我們自己的搜索。 –

    +0

    這個怎麼樣,你試過了嗎? https://marketplace.atlassian.com/plugins/com.mohamicorp.stash.search-for-stash – vikingsteve

    2

    披露:我是到位桶(藏匿)產品經理

    正如其他人所建議的,這是不是在產品的可用目前。好消息是我們目前正在進行代碼搜索。你的問題的壞消息是出於性能方面的原因(因爲它是我們研究中相對不常見的用例),我們只計劃索引默認分支(通常是主分支)的提示。

    如果你可以描述你想要更詳細地實現什麼,我會很樂意研究替代方案。

    一種選擇是在服務器上的回購站(假設您有權訪問)上編寫一系列「git grep」命令。儘管如此,您自己承擔風險,但不支持針對服務器上的回購進行的任何直接操作。

    +0

    Hi Rog和感謝您作爲一個知識淵博的內幕人士;)真的,我們想要做的事情非常簡單,尋找特定類別或常量或依賴關係的使用或導入所有回購(大約70+)。如果我們只能在默認分支('develop')上執行該操作,那麼這不是世界的盡頭,儘管所有分支(或者一個模式,比如'develop | master | release/*'會很好。你有ETA在這個「企業搜索」功能?我們在Stash 3.5,我的同事建議昨天升級到bitbucket - 是兩個非常不同(或者它是一個營銷名稱的變化)? – vikingsteve

    +0

    我們沒有時間表,我們可以分享 推薦升級到Bitbucket,除了主要版本的API改動之外,基礎產品並沒有太大的變化,所以它應該是很熟悉的,並且我們已經添加了一些新的功能 – Rog

    +0

    好的,謝謝你的意見Rog。 – vikingsteve

    2

    根據Atlassian ticket來追蹤這一點,代碼搜索是Bitbucket Server 4.6(又名Stash)中的內置功能。請參閱release notes

    +0

    非常好,謝謝喬恩,我會在星期一嘗試升級。 – vikingsteve

    相關問題