如何防止人download我既source code?

現有一個project, 內有兩個package
C:\testgit\src\main\java\com\company\pkga
C:\testgit\src\main\java\com\company\pkgb

此外, 仲有三個developer, 分別叫a, b, c

dev a可以checkout晒成個project

然後, 如何達成以下目標?

1. dev b在master只可以checkout pkgb

2. create一個branch叫branch_b, branch_b入面只會有pkgb, dev b唔可以checkout master, 只可以checkout branch_b

3. create一個branch叫branch_c, branch_c只包含兩個file,
   一個係C:\testgit\src\main\java\com\company\pkga\a.java
   一個係C:\testgit\src\main\java\com\company\pkgb\b.java
   dev c唔可以checkout branch_c以外任何branch


如果以上無辦法做到, 咁退而求其次, 將只可以checkout改為只可以commit/push
即係abc大家都可以checkout成個project,
但b只可以commit/push pkgb
c只可以commit/push a.java and b.java


如果連咁都做唔到, 咁再退而求其次, 任何其他方法都可以

現有一個project, 內有兩個package
C:\testgit\src\main\java\com\company\pkga
C:\testgit\src\main\java\ ...
3ldk 發表於 2016-4-1 20:29


   
三個 git repo  a,b,c,自己 set 番權限

一個大 repo 裝住三個 a,b,c  (git submodule)

via HKEPC Ionic Reader v1.2.9 - iPhone

TOP

無聽過有branch-level access control,亦都唔見得係好既practice
點解唔3個repo

TOP

我都係剛剛學玩 git, 不過, 你個 branch 好似怪怪地既?

正常, branch 唔係應該基於條 trunk (或者另一個 branch/tag) 做出黎, 佢同個 source 既 difference, 就係佢做過改動既地方.  如果只係得其中一兩個 file, 會代表乜?   會唔會被睇成係個 branch 要 delete 哂 master 其他野, 得番幾個 file?  將來 merge 會點?

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

3個repo即係如何?

即係copy三個folder出黎?
C:\testgit_a\
C:\testgit_b\
C:\testgit_c\
咁樣?
咁b同c改完我咪要逐個file copy返去a?


定還是指
C:\testgit\, create一個repo
C:\testgit\src\main\java\com\company\pkga, create一個repo
C:\testgit\src\main\java\com\company\pkgb, create一個repo
咁大repo又即係乜
同埋c只可以改pkga入面某一個file+pkgb入面某一個file, 邊個repo係for依個用途?

TOP

本帖最後由 梁炳 於 2016-4-2 16:07 編輯
3個repo即係如何?

即係copy三個folder出黎?
C:\testgit_a\
C:\testgit_b\
C:\testgit_c\
咁樣?
咁b同c改完 ...
3ldk 發表於 2016-4-2 14:57



    如果你要咁,你個project結構唔應該咁樣,你講既"package" (我估你意思係一d library/sub-system) 應該在main project出面,compile時先link埋,而唔係大雜繪擺哂係同一個directory入面

e.g 你個project叫"testgit", 有"pkga"同"pkgb"兩個library,共三個repo
/testgit
   /src/main
        /com/company/project/      主project既code
           ....
   /lib
       /pkga (sub-module)
           /src/main
               /com/company/pkga/a.java      
       /pkgb (sub-module)
           /src/main
               /com/company/pkgb/b.java

"lib" folder係唔會check-in落"testgit",而係用submodule check-in入來

TOP

如果你要咁,你個project結構唔應該咁樣,你講既"package" (我估你意思係一d library/sub-system)  ...
梁炳 發表於 2016-4-2 16:05



不過pkga和pkgb其實都係main project入面既code
舉個例子, pkga其實係叫controller, pkgb其實係叫service
大家都係main project既主要component, 並非module/lib

TOP

不過pkga和pkgb其實都係main project入面既code
舉個例子, pkga其實係叫controller, pkgb其實係叫servic ...
3ldk 發表於 2016-4-2 16:23



我suggest的擺法主要係方便Git
就算係一部份都無需要放埋一齊,source code點放基本上可以同個program結構無關
你個核心code最好係code on  package A/B既interface,而唔係A, B本身 (各module間既coupling都一樣係用interface)
務求令個project, package a, package b本身都可以各自compile同測試

我諗你主要唔想developer拎到成份project source code?
咁你就要額外整d野可以令package a, b本身可以運行到測試到

你要達到咁既source code管理,你個workflow都要作出相應改變
一般街上做法應該就係如此
至於你用唔用到呢個pattern, 改動有幾大,值唔值得,就只有你先知

TOP

回覆 1# 3ldk

最簡單的做法就係. 任何人等要源碼都要書面許可.

TOP