git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Partial tree export and merging
       [not found] ` <48D9FACB.20901@mahr.de>
@ 2008-09-24 13:58   ` Heiko Voigt
  2008-09-24 14:39     ` Shawn O. Pearce
  2008-09-24 17:51     ` Nguyen Thai Ngoc Duy
  0 siblings, 2 replies; 7+ messages in thread
From: Heiko Voigt @ 2008-09-24 13:58 UTC (permalink / raw)
  To: git; +Cc: Jens Lehmann

Hallo,

I am currently facing a challenge for adding limited access to a git 
repository for the i18n and documentation (language) team. Our 
repository contains *.html and *.loc files which are located along with 
the code. The language team should not see the code. At the same time a 
developer using the full tree needs to be able to contribute to the i8n 
files.

To archieve this I would like to extract a repository that only contains 
the documentation and localization files which can be used by the i8n 
and doc team. This should be regularly merged into the development (with 
code) repository.

My idea of a solution would be to export patches only for the specific 
files and import them into a seperate empty repository/branch using 
git-format-patch and git-am. This seperate repository then itself then
could be imported again with a normal merge operation. Has a anyone 
already solved such a problem or other ideas how to solve this ?

cheers Heiko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Partial tree export and merging
  2008-09-24 13:58   ` Partial tree export and merging Heiko Voigt
@ 2008-09-24 14:39     ` Shawn O. Pearce
  2008-09-24 15:05       ` Heiko Voigt
  2008-09-24 17:51     ` Nguyen Thai Ngoc Duy
  1 sibling, 1 reply; 7+ messages in thread
From: Shawn O. Pearce @ 2008-09-24 14:39 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git, Jens Lehmann

Heiko Voigt <heiko.voigt@mahr.de> wrote:
>
> I am currently facing a challenge for adding limited access to a git  
> repository for the i18n and documentation (language) team.
...
> To archieve this I would like to extract a repository that only contains  
> the documentation and localization files which can be used by the i8n  
> and doc team. This should be regularly merged into the development (with  
> code) repository.
>
> My idea of a solution would be to export patches only for the specific  
> files and import them into a seperate empty repository/branch using  
> git-format-patch and git-am. This seperate repository then itself then
> could be imported again with a normal merge operation. Has a anyone  
> already solved such a problem or other ideas how to solve this ?

See git-filter-branch.  You can use it to slice the history down
to only contain these files, but still show the full change history
of them (assuming that is what you are trying to get).

Once the history is split into a new "doc+html" repository have
developers _only_ edit the docs/html in the doc+html repository,
don't make more edits in the source code repository.

You can use git-submodule or git-merge with the subtree strategy
to pull changes from the doc+html repository into the main source
repository.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Partial tree export and merging
  2008-09-24 14:39     ` Shawn O. Pearce
@ 2008-09-24 15:05       ` Heiko Voigt
  2008-09-24 15:13         ` Shawn O. Pearce
  0 siblings, 1 reply; 7+ messages in thread
From: Heiko Voigt @ 2008-09-24 15:05 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: git, Jens Lehmann

Shawn O. Pearce schrieb:
> Once the history is split into a new "doc+html" repository have
> developers _only_ edit the docs/html in the doc+html repository,
> don't make more edits in the source code repository.

The problem with committing into 2 repositories (only merging from one 
side) is that the docs/html also contain localization files which make 
it hard to work/test the code because localization strings are initially 
added by the developers. They would then have to change in the 2nd repo 
and pull for testing.

> You can use git-submodule or git-merge with the subtree strategy
> to pull changes from the doc+html repository into the main source
> repository.

Would git submodule work with this kind of layout? Same folders 
containing different files. I thought submodules only work with 
subdirectories which are itself a git repo.

cheers Heiko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Partial tree export and merging
  2008-09-24 15:05       ` Heiko Voigt
@ 2008-09-24 15:13         ` Shawn O. Pearce
  0 siblings, 0 replies; 7+ messages in thread
From: Shawn O. Pearce @ 2008-09-24 15:13 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git, Jens Lehmann

Heiko Voigt <heiko.voigt@mahr.de> wrote:
> Shawn O. Pearce schrieb:
>> Once the history is split into a new "doc+html" repository have
>> developers _only_ edit the docs/html in the doc+html repository,
>> don't make more edits in the source code repository.
>
> The problem with committing into 2 repositories (only merging from one  
> side) is that the docs/html also contain localization files which make  
> it hard to work/test the code because localization strings are initially  
> added by the developers. They would then have to change in the 2nd repo  
> and pull for testing.

I can see how that would be difficult.

In think you are faced with either restructuring your tree so that
the docs/html/localization files are all under a single subdirectory,
or you have to keep splitting down the repository with something like
filter-branch (or your own tools) to update the localization tree.

Doing the latter risks more merge conflicts for developers when they
pull changes back from the localization team.  Usually a developer
doesn't want to d3eal with merge conflicts from doc writers, and
they really don't want to deal with them in localized files if they
can't read/write that language.

>> You can use git-submodule or git-merge with the subtree strategy
>> to pull changes from the doc+html repository into the main source
>> repository.
>
> Would git submodule work with this kind of layout? Same folders  
> containing different files. I thought submodules only work with  
> subdirectories which are itself a git repo.

You are correct, a submodule requires that everything in that
directory be part of that submodule.  If your source tree has the
"submodule files" spread all over, intermingled with sources,
you can't use submodule to manage them.

Typically the recommendation is to organize your source tree more
by functional responsibility, so you can delegate all files under
a single directory to the docs team.  The project scales better to
more staff, and its easier to avoid merge conflicts.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Partial tree export and merging
  2008-09-24 13:58   ` Partial tree export and merging Heiko Voigt
  2008-09-24 14:39     ` Shawn O. Pearce
@ 2008-09-24 17:51     ` Nguyen Thai Ngoc Duy
  2008-09-25 14:36       ` Heiko Voigt
  1 sibling, 1 reply; 7+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2008-09-24 17:51 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git, Jens Lehmann

On 9/24/08, Heiko Voigt <heiko.voigt@mahr.de> wrote:
> Hallo,
>
>  I am currently facing a challenge for adding limited access to a git
> repository for the i18n and documentation (language) team. Our repository
> contains *.html and *.loc files which are located along with the code. The
> language team should not see the code. At the same time a developer using
> the full tree needs to be able to contribute to the i8n files.

That could be done with (under-developing) sparse checkout. Basically
language team's people do "git clone --sparse-checkout='*.loc:*.html'
your-repo.git". Then they only have *.loc and *.html files in working
directory. When they commit, all other files are unchanged. Developers
merge to have updated *.log/html as usual.

I have a question though: is language team allowed to checkout/modify
files other than *.loc and *.html?
-- 
Duy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Partial tree export and merging
  2008-09-24 17:51     ` Nguyen Thai Ngoc Duy
@ 2008-09-25 14:36       ` Heiko Voigt
  2008-09-25 14:51         ` Nguyen Thai Ngoc Duy
  0 siblings, 1 reply; 7+ messages in thread
From: Heiko Voigt @ 2008-09-25 14:36 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy; +Cc: git, Jens Lehmann

Nguyen Thai Ngoc Duy schrieb:
> That could be done with (under-developing) sparse checkout. Basically
> language team's people do "git clone --sparse-checkout='*.loc:*.html'
> your-repo.git". Then they only have *.loc and *.html files in working
> directory. When they commit, all other files are unchanged. Developers
> merge to have updated *.log/html as usual.

Where is that option ? Or are you suggesting me to implement it ?

> I have a question though: is language team allowed to checkout/modify
> files other than *.loc and *.html?

Well in an ideal world they should only have access to the "language" 
files. But it is not crucial for us if they get access to the source. 
Its more an issue of user friendlyness. The revision control which is in 
place at the moment does allow them to selectively check out those files.

Heiko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Partial tree export and merging
  2008-09-25 14:36       ` Heiko Voigt
@ 2008-09-25 14:51         ` Nguyen Thai Ngoc Duy
  0 siblings, 0 replies; 7+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2008-09-25 14:51 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git, Jens Lehmann

On 9/25/08, Heiko Voigt <heiko.voigt@mahr.de> wrote:
> Nguyen Thai Ngoc Duy schrieb:
>
> > That could be done with (under-developing) sparse checkout. Basically
> > language team's people do "git clone
> --sparse-checkout='*.loc:*.html'
> > your-repo.git". Then they only have *.loc and *.html files in working
> > directory. When they commit, all other files are unchanged. Developers
> > merge to have updated *.log/html as usual.
> >
>
>  Where is that option ? Or are you suggesting me to implement it ?

As I said, it is being developed. It should not be used in production
environment yet but if you want to try, you can get it from here

http://repo.or.cz/w/git/pclouds.git in branch sparse-checkout

> > I have a question though: is language team allowed to checkout/modify
> > files other than *.loc and *.html?
> >
>
>  Well in an ideal world they should only have access to the "language"
> files. But it is not crucial for us if they get access to the source. Its
> more an issue of user friendlyness. The revision control which is in place
> at the moment does allow them to selectively check out those files.

Thanks. Just wanted to know the scenario that sparse checkout could be used.
-- 
Duy

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-09-25 14:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <ACF330629DFB034AB290061C320F43460836E082@GOEMAILBE02.europe.mahr.lan>
     [not found] ` <48D9FACB.20901@mahr.de>
2008-09-24 13:58   ` Partial tree export and merging Heiko Voigt
2008-09-24 14:39     ` Shawn O. Pearce
2008-09-24 15:05       ` Heiko Voigt
2008-09-24 15:13         ` Shawn O. Pearce
2008-09-24 17:51     ` Nguyen Thai Ngoc Duy
2008-09-25 14:36       ` Heiko Voigt
2008-09-25 14:51         ` Nguyen Thai Ngoc Duy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).