Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.
Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.
Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them again
Scenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push review
How does it sound?
Comments, suggestions are more than welcome :-)Luca.
--
--
To unsubscribe, email repo-discuss+unsubscribe@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
On 17 Aug 2017, at 10:18, Edwin Kempin <eke...@google.com> wrote:On Thu, Aug 17, 2017 at 10:14 AM, Luca Milanesio <luca.mi...@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Is this a use-case that many people have?Normally it's one person working on a change. In this case you always have the latest change state in your repo, since as change author you pushed it.I agree that sometimes you want to work on somebody else's change, but this is rather seldom.
I guess trying out somebody else's change happens more often, but normally you do this when you review the change and then you are already in the UI where you can copy the download command to the clipboard.
Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.We once tried to add a magic ref that always points to the latest patch set of a change (something like refs/changes/XX/XXXX/latest), so that you can easily fetch the latest state of a change. However this was given up since it was too expensive to determine the latest patch set that is visible to you, e.g. the latest patch set could be a draft patch set that is not visible to you. This problem will be solved once draft patch sets are gone. So I guess after draft patch sets are gone it's a good idea to resume this idea. Not sure, but I think Changcheng or Patrick were looking into this back then.
Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againFor CI this would be nice.
Scenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewAs said above I don't think that many users will benefit from this as it's rather rare that you update changes of other users.
How does it sound?I like the idea of reattempting to implement refs/changes/XX/XXXX/latest after draft patch sets are gone, but I'm not sure that many users would benefit from the 'active-changes' ref filter. It's yet another concept and each new concept adds a bit of complexity so i'm not sure it's worth doing.
Hi Edwin, thanks for your feedback.See below my replies.On 17 Aug 2017, at 10:18, Edwin Kempin <eke...@google.com> wrote:On Thu, Aug 17, 2017 at 10:14 AM, Luca Milanesio <luca.milanesio@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Is this a use-case that many people have?Normally it's one person working on a change. In this case you always have the latest change state in your repo, since as change author you pushed it.I agree that sometimes you want to work on somebody else's change, but this is rather seldom.Actually happens quite frequently that more than one people is working on the same change ... is this called pair-programming in XP ? ;-)The "pair" can be remote and they may interleave themselves in the patch-sets.
I do a lot on the analytics plugin with Claudio.I guess trying out somebody else's change happens more often, but normally you do this when you review the change and then you are already in the UI where you can copy the download command to the clipboard.Yes, but people then end up in a "detached head" state and most novice users are quite "scared" about detached state in Git ;-)
Of course, experienced Git and Gerrit users have no issues with the current Download mechanism.
Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.We once tried to add a magic ref that always points to the latest patch set of a change (something like refs/changes/XX/XXXX/latest), so that you can easily fetch the latest state of a change. However this was given up since it was too expensive to determine the latest patch set that is visible to you, e.g. the latest patch set could be a draft patch set that is not visible to you. This problem will be solved once draft patch sets are gone. So I guess after draft patch sets are gone it's a good idea to resume this idea. Not sure, but I think Changcheng or Patrick were looking into this back then.If you recall .. draft patch-sets in a non-draft change had many many other issues :-(I am so happy that drafts are going away :-)And yes, will be worth revisiting it and making that happen :-)Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againFor CI this would be nice.Currently the integration between Gerrit and the CI systems is *so complicated* because of the ref structure of the changes/CC/CCCCC/PP structure.By including a simplified refspec, with the ability to have a "constant" ref name for a change, will make trivial the integration with a lot of CI systems.
Scenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewAs said above I don't think that many users will benefit from this as it's rather rare that you update changes of other users.Experienced users? no, they won't use it.Novice users? maybe yes?
Gerrit workflow is *way simpler* than GitHub, GitLab or Stash workflows ... BUT the download + amend + push required locally is scaring a lot of novice users that are just giving up.I bet that:- with a simplified local Git workflow (as above)- with PolyGerrit UX... the Gerrit adoption will definitely take off and a lot more people will start using it :-)How does it sound?I like the idea of reattempting to implement refs/changes/XX/XXXX/latest after draft patch sets are gone, but I'm not sure that many users would benefit from the 'active-changes' ref filter. It's yet another concept and each new concept adds a bit of complexity so i'm not sure it's worth doing.Yes, we could start by breaking down the concept in separate changes:C1: allow fetching from /XX/XXXX/latest magic refC2: refs/active-changes/* for CI systems to fetch only latest active changesC3: enable push to XX/XXXX/latest magic ref
C1 and C2 are independentC3 depends on C1
Comments, suggestions are more than welcome :-)Luca.
--
--
To unsubscribe, email repo-discuss+unsub...@googlegroups.com
On 17 Aug 2017, at 12:09, Edwin Kempin <eke...@google.com> wrote:On Thu, Aug 17, 2017 at 12:02 PM, Luca Milanesio <luca.mi...@gmail.com> wrote:Hi Edwin, thanks for your feedback.See below my replies.On 17 Aug 2017, at 10:18, Edwin Kempin <eke...@google.com> wrote:On Thu, Aug 17, 2017 at 10:14 AM, Luca Milanesio <luca.milanesio@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Is this a use-case that many people have?Normally it's one person working on a change. In this case you always have the latest change state in your repo, since as change author you pushed it.I agree that sometimes you want to work on somebody else's change, but this is rather seldom.Actually happens quite frequently that more than one people is working on the same change ... is this called pair-programming in XP ? ;-)The "pair" can be remote and they may interleave themselves in the patch-sets.Yes, I'm aware of such a workflow, but I would claim that this is rather for experienced users, since you have to take good care to agree on who is pushing next so that you don't overwrite each others changes.
I do a lot on the analytics plugin with Claudio.I guess trying out somebody else's change happens more often, but normally you do this when you review the change and then you are already in the UI where you can copy the download command to the clipboard.Yes, but people then end up in a "detached head" state and most novice users are quite "scared" about detached state in Git ;-)Of course, experienced Git and Gerrit users have no issues with the current Download mechanism.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.We once tried to add a magic ref that always points to the latest patch set of a change (something like refs/changes/XX/XXXX/latest), so that you can easily fetch the latest state of a change. However this was given up since it was too expensive to determine the latest patch set that is visible to you, e.g. the latest patch set could be a draft patch set that is not visible to you. This problem will be solved once draft patch sets are gone. So I guess after draft patch sets are gone it's a good idea to resume this idea. Not sure, but I think Changcheng or Patrick were looking into this back then.If you recall .. draft patch-sets in a non-draft change had many many other issues :-(I am so happy that drafts are going away :-)And yes, will be worth revisiting it and making that happen :-)Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againFor CI this would be nice.Currently the integration between Gerrit and the CI systems is *so complicated* because of the ref structure of the changes/CC/CCCCC/PP structure.By including a simplified refspec, with the ability to have a "constant" ref name for a change, will make trivial the integration with a lot of CI systems.Isn't it enough if we have support for /XX/XXXX/latest?
Scenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewAs said above I don't think that many users will benefit from this as it's rather rare that you update changes of other users.Experienced users? no, they won't use it.Novice users? maybe yes?Gerrit workflow is *way simpler* than GitHub, GitLab or Stash workflows ... BUT the download + amend + push required locally is scaring a lot of novice users that are just giving up.I bet that:- with a simplified local Git workflow (as above)- with PolyGerrit UX... the Gerrit adoption will definitely take off and a lot more people will start using it :-)How does it sound?I like the idea of reattempting to implement refs/changes/XX/XXXX/latest after draft patch sets are gone, but I'm not sure that many users would benefit from the 'active-changes' ref filter. It's yet another concept and each new concept adds a bit of complexity so i'm not sure it's worth doing.Yes, we could start by breaking down the concept in separate changes:C1: allow fetching from /XX/XXXX/latest magic refC2: refs/active-changes/* for CI systems to fetch only latest active changesC3: enable push to XX/XXXX/latest magic refSGMT, but still not convinced that C2 is crucial.
C1 and C2 are independentC3 depends on C1
Comments, suggestions are more than welcome :-)Luca.
--
--
To unsubscribe, email repo-discuss+unsubscribe@googlegroups.com
Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.
2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againScenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewHow does it sound?Comments, suggestions are more than welcome :-)Luca.
On 17 Aug 2017, at 15:09, Dave Borowitz <dbor...@google.com> wrote:On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio <luca.mi...@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.FWIW, this is a huge issue for us; we have several repos getting towards 1M refs. So, we are planning on adding a single config option to hide *all* refs from advertisement so we can use it on gerrit-review. You can still fetch by SHA-1, and the download-commands plugin will reflect this.
This obviously won't improve the workflow of a single "git pull", but it will cut down on ref advertisements for sure.
On 17 Aug 2017, at 15:09, Dave Borowitz <dbor...@google.com> wrote:On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio <luca.milanesio@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.FWIW, this is a huge issue for us; we have several repos getting towards 1M refs. So, we are planning on adding a single config option to hide *all* refs from advertisement so we can use it on gerrit-review. You can still fetch by SHA-1, and the download-commands plugin will reflect this.We have clients in a similar situation, where replication to slaves become a real issue.90% of the times slaves are there for CI jobs, and you only want to build changes that are "recent" (let's say, the last month) and "live" (no closed or abandoned changes).
With those conditions, our clients could have a significant improvement in the reduction of the advertised refs to the slaves and consequent speedup of their CI builds as well.This obviously won't improve the workflow of a single "git pull", but it will cut down on ref advertisements for sure.Yep.So possibly a "core-plugin" idea? Or as you said makes sense in the kernel as well?
2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againScenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewHow does it sound?Comments, suggestions are more than welcome :-)Luca.
--
--
To unsubscribe, email repo-discuss+unsub...@googlegroups.com
On 17 Aug 2017, at 15:28, Dave Borowitz <dbor...@google.com> wrote:On Thu, Aug 17, 2017 at 10:21 AM, Luca Milanesio <luca.mi...@gmail.com> wrote:On 17 Aug 2017, at 15:09, Dave Borowitz <dbor...@google.com> wrote:On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio <luca.milanesio@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.FWIW, this is a huge issue for us; we have several repos getting towards 1M refs. So, we are planning on adding a single config option to hide *all* refs from advertisement so we can use it on gerrit-review. You can still fetch by SHA-1, and the download-commands plugin will reflect this.We have clients in a similar situation, where replication to slaves become a real issue.90% of the times slaves are there for CI jobs, and you only want to build changes that are "recent" (let's say, the last month) and "live" (no closed or abandoned changes).Could your CI slaves do this without modifying the wire protocol?
Use the search API to search for changes matching whatever definition of "interesting" you want. Search results include the SHA-1 of the current revision. Stitch those together into a single, long "git fetch" command line.
ISTM improving the default behavior of "git pull" is something that applies to humans, not to bots.With those conditions, our clients could have a significant improvement in the reduction of the advertised refs to the slaves and consequent speedup of their CI builds as well.This obviously won't improve the workflow of a single "git pull", but it will cut down on ref advertisements for sure.Yep.So possibly a "core-plugin" idea? Or as you said makes sense in the kernel as well?Our proposal, omitting refs/changes/ entirely, is likely to go in core.
I think adding additional things to the ref advertisement is actually already doable with ReceivePackInitializers.
Other people may have different feelings, but my gut says it'd be hard to come up with a one-size-fits-all approach. Although maybe Edwin's idea of a /latest ref is broadly applicable enough *shrug*.
And if they understand that "latest" may not
be the latest, then why would they use it as a ref instead
of the explicit ref they want?If you are providing a magic ref that is supposed to be
the>
latest, but it isn't much of the time, then you aren't
really helping users, and they are likely to just prefer
sticking to the immutable explicit ref which includes
the
patchset (I would),
As a Gerrit experienced user, yes. As a novice user, I
don't know ...
possibly having something "similar" to a
feature branch could be useful. But again, I have don't
have a crystal ball :-)
I think the imroved workflows would be valuable. My nit is
really just in the naming of such a ref. Maybe you can
integrate it and make it look more like a feature branch.
Perhaps then it shouldn't really use change numbers either?
Especially since a feature branch likely inlcudes more than
one change? Perhaps you are looking for something that
allows topics to be fetched and pushed? Maybe you can come
up with a magic ref for topics that has some well defined
rules that maps a topic to a change series?
On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio <luca.mi...@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.FWIW, this is a huge issue for us; we have several repos getting towards 1M refs.
So, we are planning on adding a single config option to hide *all* refs from advertisement so we can use it on gerrit-review. You can still fetch by SHA-1, and the download-commands plugin will reflect this.
On 22 Aug 2017, at 09:02, Saša Živkov <ziv...@gmail.com> wrote:
On Thu, Aug 17, 2017 at 4:09 PM, 'Dave Borowitz' via Repo and Gerrit Discussion <repo-discuss@googlegroups.com> wrote:
On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio <luca.milanesio@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.FWIW, this is a huge issue for us; we have several repos getting towards 1M refs.We have exactly the same issue with several repos with huge number of refs.So, we are planning on adding a single config option to hide *all* refs from advertisement so we can use it on gerrit-review. You can still fetch by SHA-1, and the download-commands plugin will reflect this.I experimented with the (receivepack|transfer|uploadpack).hiderefs=refs/changes/ on a large repo.This cuts fetch time to a fraction of what it was without this setting.A problem with that approach is that one cannot fetch a single change using its change refs refs/changes/NN/NNNNN/N.The download-commands plugin can provide download commands to fetch by SHA1 and this will solve the issue for (human) users.However, I suspect that most of CI systems do not rely on the download-commands plugin and/or have therefs/changes/NN/NNNNN/N structure hardcoded and would therefore still try fetching by refs/changes/...Therefore, not advertising the whole refs/changes/ namespace might be quite disruptive for CI systems?Maybe limiting advertising of refs/changes/* to the refs of all open changes and recently closed changes would beless disruptive but would bring similar benefits?
Bingo, *that's exactly* what my new Gerrit Module does ... and works like a charm :-)
And can be allocated to *only* specific groups of users, so that can be limited to those CI jobs (or replication nodes) that really need that type of speedup.Can we create the repo on gerrit-review?
(the module is currently hosted on GitHub).Luca.
Accessing older closed changes would still require a different approach but this is less disruptive.
This obviously won't improve the workflow of a single "git pull", but it will cut down on ref advertisements for sure.
2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againScenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewHow does it sound?Comments, suggestions are more than welcome :-)Luca.
--
--
To unsubscribe, email repo-discuss+unsub...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
But we should start with what you have currently :-)And can be allocated to *only* specific groups of users, so that can be limited to those CI jobs (or replication nodes) that really need that type of speedup.Can we create the repo on gerrit-review?This shouldn't be a problem. If no one objects I would create the repo today.
Sent from my iPhone
> On 22 Aug 2017, at 19:14, Martin Fick <mf...@codeaurora.org> wrote:
>
> On Tuesday, August 22, 2017 09:36:54 AM Luca Milanesio
> wrote:
>>> On 22 Aug 2017, at 09:21, Saša Živkov <ziv...@gmail.com>
>>> wrote:>
>>> On Tue, Aug 22, 2017 at 10:08 AM, Luca Milanesio
> <luca.mi...@gmail.com <mailto:luca.milanesio@gmail.com>>
> wrote:
>>>> On 22 Aug 2017, at 09:02, Saša Živkov <ziv...@gmail.com
>>>> <mailto:ziv...@gmail.com>> wrote:
>>>>
>>>>
>>>>
>>>> On Thu, Aug 17, 2017 at 4:09 PM, 'Dave Borowitz' via
>>>> Repo and Gerrit Discussion
>>>> <repo-d...@googlegroups.com
>>>> <mailto:repo-discuss@googlegroups.com>> wrote:
>>>>
>>>>
>>>> On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio
>>>> <luca.mi...@gmail.com
>>>> <mailto:luca.milanesio@gmail.com>> wrote: Hi all,
No more feedback for around a week ... @Gerrit Maintainers - shall we then create the module on gerrit-review.googlesource.com?
On 17 Aug 2017, at 15:09, Dave Borowitz <dbor...@google.com> wrote:On Thu, Aug 17, 2017 at 4:14 AM, Luca Milanesio <luca.milanesio@gmail.com> wrote:Hi all,I need the community's opinion on a change I am about to propose on Gerrit master branch.See below what I want to do and why :-)Goal:Making people's lives easier when fetching active changes locally and keeping the up-to-date.Giving a more "feature-branch-like" workflow that would accelerate the learning curve for Gerrit novice usersWhat:Introduce a new 'active-changes' for filtering out closed or obsolete changes (merged, abandoned, older than N days) from the "ls-remote" command and, for the active changes that always point to the latest patch-set.Why:1. For busy repos, the number of changes refs could be *huge*, up to tens of thousands or even more: I want to make that list shorter and more tied to "live" changes.FWIW, this is a huge issue for us; we have several repos getting towards 1M refs. So, we are planning on adding a single config option to hide *all* refs from advertisement so we can use it on gerrit-review. You can still fetch by SHA-1, and the download-commands plugin will reflect this.We have clients in a similar situation, where replication to slaves become a real issue.
90% of the times slaves are there for CI jobs, and you only want to build changes that are "recent" (let's say, the last month) and "live" (no closed or abandoned changes).With those conditions, our clients could have a significant improvement in the reduction of the advertised refs to the slaves and consequent speedup of their CI builds as well.This obviously won't improve the workflow of a single "git pull", but it will cut down on ref advertisements for sure.Yep.So possibly a "core-plugin" idea? Or as you said makes sense in the kernel as well?
2. I want to allow the people to do a simgle "git pull" and get the latest patch-set for a changeExample Scenarios:Scenario1 - CI: I want to build all the active changes:- configure +refs/active-changes/*:refs/remotes/review/*- just pull and build all the branches- keep them up-date by simply fetching them againScenario2 - Local dev: I want to work on change 5617- add Gerrit as 'review' remote with the following ref-spec: +refs/active-changes/*:refs/remotes/review/*- git checkout -b 5617 review/5617 (it will fetch the latest patch-set of change 5617)- make some local modifications- git commit -a --amend -m "My contribution"- git push reviewHow does it sound?Comments, suggestions are more than welcome :-)Luca.
--
--
To unsubscribe, email repo-discuss+unsub...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
That is *really* cool, outstanding results !Does this mean that the concept works ... and we should now do something about as "out-of-the-box" feature?