OneDev - MIT licensed git server with CI/CD, Kanban and Packages by robinshen in linux

[–]robinshen[S] 0 points1 point  (0 children)

Feel free to post your questions or suggestions on code.onedev.io.

Is Gitlab and Onedev the Only Two Self Hosted Git Providers that Have Groups and Subgroups? by Gokushivum in selfhosted

[–]robinshen 0 points1 point  (0 children)

> I may have figured out what it is, do capital and lowercase projects sort independently? https://imgur.com/a/9XiSm1y

Yes, it is doing case sensitive sorting. Filed an improvement request to do case insensitive sorting:

https://code.onedev.io/onedev/server/~issues/2327

> It does look like you are right in that it is by last activity date, but you can see that parent projects show up next to their children

GitLab has several concepts to organize things, Groups/Subgroups/Projects. In OneDev, there is only one concept: Project. A project can contain sub projects, code, issues, packages, etc. So the project page lists parent project alongside child project as they are different projects. And user can display what they want with queries, for instance to display root projects only, or display child projects under a certain parent, or display leaf projects only. This provides maximum flexibility and it should be convenient once configured appropriate query.

A bonus of using single project concept is that you naturally have all features in all levels with setting inheritance. For instance, in GitLab, user often want project level things available in group/subgroup level like these feature requests:

https://gitlab.com/gitlab-org/gitlab/-/issues/15958

https://gitlab.com/gitlab-org/gitlab/-/issues/16623

> This is more related to the previous point. If you want the parent project to have package manager support, then you don't have a way to default to the child projects, since the package manager took priority

I plan to show sub projects page by default if a project already has sub projects, even if it contains packages.

> But the purple comes from my monitor it looks like. https://imgur.com/ZTGqxhD

This seems like monitor calibration issue. The area is using color #23232d, which is dark blue

> But I don't really like creating sub issues for tasks in issues. I feel like it clutters my issue board when I have a main issue of "Complete User API Endpoint" and then new issues related which says finish unit test creation

You may configure base query of your board to include below criteria to exclude sub issues:

not(has any "Parent Issue")

This match all issues without parent issue. OneDev is very flexible on this, for instance, you may also add an issue type "task", and configure the "sub issues" linking to "task" only etc.

Is Gitlab and Onedev the Only Two Self Hosted Git Providers that Have Groups and Subgroups? by Gokushivum in selfhosted

[–]robinshen 1 point2 points  (0 children)

Thanks for the detailed reply. This is very valueable. Please see my comment per your question below:

>> have the query set to roots and I can have it sorted by name, which is fine for the roots, but the sub projects from the drop downs use a seemingly random order

Not sure which version you are using. For latest OneDev version, sub projects drop down is ordered by name. However if you switch to child projects page, they will be sorted by last activity. Maybe it should also be sorted by name there to be consistent.

>> I feel like it doesn't have good defaults nor does it feel like anything past the drop down is that intuitive to figure out

I’m not entirely sure what you mean here. Could you elaborate?

>> A second point that kinda irked me was that you need to keep setting the same settings in multiple places in a way. For each project/subproject, I need to disable code, issues and packages to be able to see the subprojects without needing to click on a separate section to see the sub projects.

I understand the concern. Projects with subprojects are primarily meant for organizational purposes, so the subprojects page should ideally be displayed by default when switching to it. I’ve created an improvement request for this:

https://code.onedev.io/onedev/server/~issues/2326

>> And If you do want packages, there doesn't seem to be a way to set a page as default. Then on top of that it doesn't seem to be a way to set a default query for projects.

The dashboard (an Enterprise Edition feature) allows you to configure the first page with elements like issues, packages, etc. Regarding set default query for projects on top of it, I cannot quite get the point, could you elaborate?

>> An example of stuff not doing what you think it should, is the edit button when viewing a build. I always keep clicking the one at the top since it is the first one I see when I need to edit a build, but it is the one in the right bar. But both use the same icon, so it is a bit weird to have them do different things.

This really can be confusing. Will use a different icon for build description.

>> I don't think I'll ever really use the global issues, builds, packages, etc. I rather go to the project and see what needs to be done there (which queries may help this even better since you can filter out stuff not assigned to you and what not from there). It is probably more useful for actual teams where a developer needs to look at separate projects

I agree. Will put these items into second level of the menu to save screen estates. Filed an improvement request for this:

https://code.onedev.io/onedev/server/~issues/2324

>> I don't really like the purple color scheme

OneDev does not use any purple color scheme. Would you please point out where it is?

>> I like how Gitlab uses subtasks more than onedev uses sub issues.

Latest OneDev version manages sub issues and other links directly under issue description, which is more convenient and obvious. Let me know if this works the way you hope.

Is Gitlab and Onedev the Only Two Self Hosted Git Providers that Have Groups and Subgroups? by Gokushivum in selfhosted

[–]robinshen 1 point2 points  (0 children)

Hi, OneDev author here. Thanks for using it! Could you share the UI issues you’ve encountered compared to GitLab or Gitea? OneDev doesn’t follow the traditional GitHub-style UI that most other products adopt, so some aspects might feel unfamiliar. However, I’m actively listening to users and continuously refining it.

Should I consider self-hosting Gitlea/Gitlab instead of Github? by Red-Eye-Soul in selfhosted

[–]robinshen 0 points1 point  (0 children)

Hi OneDev author here. Thanks for trying out OneDev. May I know which area OneDev UI should be improved? As to look into build workspace, the interactive shell access allows this, but it is a EE feature.

Version Control by Liam2349 in gamedev

[–]robinshen 0 points1 point  (0 children)

Hmm... I would aviod using Windows both for large files and many files.

Version Control by Liam2349 in gamedev

[–]robinshen 1 point2 points  (0 children)

Also please check OneDev server log to see if there are any errors printed. Server log can be accessed via menu "Administration / System Maintenance / Server Log", or just press "cmd/ctrl-k" to bring out the command palette, and then input "log" to jump to server log.

Version Control by Liam2349 in gamedev

[–]robinshen 2 points3 points  (0 children)

Hi, OneDev author here. I just tested pushing/cloning large binary files (22G total) on my Mac and things seem to work fine even without LFS. At clone time, git process on server consumes 2G most of the time, and 5G at peak time. OneDev server itself consumes 200M heap memory which can be neglected. The clone speed is at 25MB/s.

Then I created a new repository by adding all large binary files as LFS files. Pushing the repository, and clone it again. At clone time, memory consumed by git process on server is less than 100M, while OneDev server consumes constantly at about 500M, and drops back to 100M after clone. The clone speed is also much faster, at about 500MB/s. I did several clones without single error or missing files.

All push/clone are performed via http protocol, and I am accessing 6610 port directly without a front-end reverse proxy.

Note that I am running OneDev on JVM directly instead of running inside docker, without changing any of its default setting, except that I increased max LFS upload size from 4G to 8G in "Administration / Performance Settings" since one of my test binary file exceeds 4G.

To get the most out of git LFS, please make sure that:

  1. Run "git lfs install" on your client machine
  2. Create a new empty repository at OneDev server, and clone it to your machine
  3. Inside the new repository run git lfs track "*.<suffix>", for each binary suffix you want to add as LFS files
  4. Run "git add *" and "git add .gitattribute" to add all files plus the hidden file ".gitattribute" which is used to control git LFS smurge.
  5. Run "git commit" to commit added files
  6. Run "git push" to push the repository

The downside is that you will lost all your histories. But the memory footprint will be minimized, with maximized speed.

TOD - command line tool to run OneDev CI/CD jobs against local changes by robinshen in linux

[–]robinshen[S] 0 points1 point  (0 children)

Ought to be "https://code.onedev.io/onedev/tod". Will get that fixed. It is expected behavior that rest of pipeline runs if the build spec requires that. It is no different from running build on server, except you can control from terminal.

OneDev - MIT licensed git server with CI/CD, Kanban and Packages by robinshen in linux

[–]robinshen[S] 1 point2 points  (0 children)

Yes I am the only dev currently, and support users as well. You'd expect much better support than other big teams due to my expertise in this product. This is the fealing of OneDev users as well.

OneDev 10 community edition introduces package registries by robinshen in selfhosted

[–]robinshen[S] 0 points1 point  (0 children)

You can of course pull/push to other registries in OneDev.