LLVM projects and monorepo.

Hello,

I am trying to access https://git.llvm.org/git/llvm to be able to cherry pick some of the recent commits I did in the monorepo into our downstream llvm-only repository.

The host seems defunct, is this part of the move to the monorepo?

I think I can just get the patch and remove the `llvm` on top of the paths, but that’s not a scalable approach.

Francesco

Francesco Petrogalli via llvm-dev

I am trying to access https://git.llvm.org/git/llvm to be able to cherry
pick some of the recent commits I did in the monorepo into our downstream
llvm-only repository.

The host seems defunct, is this part of the move to the monorepo?

Yes, the repo is at https://github.com/llvm/llvm-project.git now.

I think I can just get the patch and remove the `llvm` on top of the
paths, but that’s not a scalable approach.

We used to use -Xsubtree (I think that's the correct spelling) for
accommodating changes in the directory layout. That might help.
--paulr

I think I can just get the patch and remove the `llvm` on top of the paths, but that’s not a scalable approach.

IIRC, the -p option of 'patch' is exactly for doing this. Would that simplify your use-case?

I think I can just get the patch and remove the `llvm` on top of the paths, but that’s not a scalable approach.

IIRC, the -p option of 'patch' is exactly for doing this. Would that simplify your use-case?

Yes, for a single patch that would work. If there is a way to do that also when `git cherry-picking` from monorepo to llvm-only it would be great.

Francesco

This what `llvm-mirror` used to do, but it is behind now, as SVN hosts are offline as well:

https://github.com/llvm-mirror/llvm

Will Dietz mentioned that he would want to offload maintenance of mirror to somebody else eventually:

http://lists.llvm.org/pipermail/llvm-dev/2019-July/133869.html

Mirrors of individual projects have the downside that git hashes would not be compatible with the monorepo.

-Petr

Francesco Petrogalli via llvm-dev <llvm-dev@lists.llvm.org> writes:

I think I can just get the patch and remove the `llvm` on top of
the paths, but that’s not a scalable approach.

IIRC, the -p option of 'patch' is exactly for doing this. Would that
simplify your use-case?

Yes, for a single patch that would work. If there is a way to do that
also when `git cherry-picking` from monorepo to llvm-only it would be
great.

As Paul implied, you may be able to use git's "subtree" merge strategy
to help with this:

git cherry-pick -Xsubtree=llvm ...

The `-Xsubtree=llvm` flag also works with other git commands like merge
and rebase if you need to do something more complicated.

Francesco Petrogalli via llvm-dev <llvm-dev@lists.llvm.org> writes:

I think I can just get the patch and remove the `llvm` on top of
the paths, but that’s not a scalable approach.

IIRC, the -p option of 'patch' is exactly for doing this. Would that
simplify your use-case?

Yes, for a single patch that would work. If there is a way to do that
also when `git cherry-picking` from monorepo to llvm-only it would be
great.

As Paul implied, you may be able to use git's "subtree" merge strategy
to help with this:

git cherry-pick -Xsubtree=llvm ...

The subtree strategy worked perfectly, thank you!

> $ git cherry-pick -Xsubtree=llvm eac93757c39bbd2b2290d7543619eebd770c3141

[SHOJICOMP-4520 d6b529e] [VectorUtils] API for VFShape, update VFInfo.
 5 files changed, 292 insertions(+), 8 deletions(-)

Francesco