Bug 580959 - Better check-out performance / user experience with "clone project from git with smart import"
Summary: Better check-out performance / user experience with "clone project from git w...
Status: NEW
Alias: None
Product: EGit
Classification: Technology
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-30 05:07 EDT by Christoph Laeubrich CLA
Modified: 2022-10-30 17:12 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Laeubrich CLA 2022-10-30 05:07:02 EDT
At EclipseCon 2022 [1] it was complained that the project import from git lacks good user-experience.

I'm currently try to step-trough whats presented here an came along with some ideas to improve this:

1) The first dialog is to choose "open existing project from disk" or "clone from uri". It would be great if this step could be skipped if an URI is detected in the clipboard, that is simply starting at the second page as if I have choosen "clone from URI" with a hint in the dialog "We detected a clone URI, if you want to use a local copy instead please click here"

2) Second dialog then (when clone from uri) a dialog that just summarize everything and allows to select authentication and alike, I think in general (if  no missing mandatory data is detected) this page can also be skipped and given a hint "we have choosen default settings regarding connection for you click here to adjust them if needed)

3) Branch selection, this shoudl be completely skipped as well and instead have something like github does: Combobox what says "only fetch inital branch" and "fetch all branches" with a little link that says "select branchens to fetch individually)

4) Finally we are on the "Local Destination" page, that should actually be the first page a user sees probably enriched with the hints as mentioned before.

5) if one now press "next" the repository is fetched, and this can take really really long... even if one chooses only the main branch. and pressing cancel seem take very long. This can dramatically be improved with a little trick:

Instead of cloning the full repo, only perform a 'git clone --depth 1', this is much faster and we have everything we need to allow the user to select and import projects already!
Then after the initial clone one can perform in a background job the actual fetching of the remaining stuff doing:

git fetch --unshallow
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

That will give a much more improved user-experience, given I have copied an URL from Github, hitting the "import with smartimport" I'm instantly land at the page where only I have to confirm default choices. I then can instantly select projects (maybe even on the previous page there should be a checkbox "detect and import projects automatically" to even skip that step), and get a very fast clone. 


[1] https://www.eclipsecon.org/2022/sessions/what-eclipse-ide-must-learn-other-ides-survive

By the way are there any plans to move jgit/egit to github? I usally try to link code, add images format stuff a bit and alike, but that's horrible with bugzilla :-\
Comment 1 Thomas Wolf CLA 2022-10-30 17:12:55 EDT
(In reply to Christoph Laeubrich from comment #0)
> Instead of cloning the full repo, only perform a 'git clone --depth 1', this
> is much faster

But see bug 580769.