Giter Site home page Giter Site logo

git-server's People

Contributors

asylunatic avatar azwn avatar jwgmeligmeyling avatar liamclark avatar michaeldejong avatar pilmus avatar sgmeligmeyling avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

git-server's Issues

"git diff" only operates on no-bare Git repositories

Apparently the git diff command doesn't work on non-bare repositories. Gitolite only creates and maintains bare repositories, and it doesn't seem to be possible/acceptable to patch Gitolite to use non-bare repositories.

As a consequence we need to define a git hook which will create a new non-bare repository somewhere on disk, and push subsequently received commits to this non-bare repository. The repository inspector code should then work on these non-bare repositories. This could be very costly in terms of disk space, since we'll have to maintain both a bare and a non-bare repository.

Alternatively we could also do a checkout and cache the result when we want to execute the git diff command, but this would introduce a 1-10 second load time when a cache miss occurs. This seems like a less attractive option.

Moved/renamed files appear as added + removed file in diff

Moved/renamed files appear as added + removed file in diff

Example:

echo "Some content" >> test.txt
git add test.txt
git commit -m "Added file"
git mv test.txt test2.txt
git commit -m "Moved file"
git push

When requesting the diff via REST (or through Devhub), the commit diff will show test.txt as removed, and test2.txt as newly added file.

Can't setup repository from clean project

When pulling the repositories and creating a repository for the ti1705 course (which is loaded from the changelog.xml), an exception is thrown because the git server can't find the group for ti1705 in the gitolite config. After adding @ti1705 = git to the config manually, you're able to set up a repository. I think it would be more fail safe to just create the group when it's not there, or create it while setting up the project (which currently isn't possible in Devhub).

Prevent invalid SSH keys from being submitted to gitolite.

We've had issues with people submitting invalid SSH keys, or SSH keys with exotic algorithms which gitolite doesn't seem to understand.

We should check the validity of SSH keys in some way. I've looked for various implementations of SSH key checkers in Java, but none of them seemed to work. To detect invalid SSH keys on the server (once the damage was already done) I used the following command:

ssh-keygen -lf <filename>

which either produces a line like:
2048 59:78:49:21:35:ea:ba:ba:f4:3c:b8:d8:67:bf:72:1e <netID> (RSA)

or not when it's invalid. Perhaps we can use this to validate SSH keys before submitting them to gitolite.

Release on Devhub Nexus Server

For the TI1706 course we want students to be able to write tests for devhub. For this it would be easiest if the git-server client and build-server client would be released on the Devhub Nexus maven repository. This is also useful for re-enabling the CI without having to clone all repos, checkout the right branch, and to a maven install.

Git subprojects can't be merged

If a group pushes the framework into their repository on GitHub, merging pull requests fails.
Because the mirror has dirty state.
Git thinks we deleted the subproject. because the JGIT clone does not recursively clone this subproject.

Proposed solutions:

  1. disallow a push that contains subprojects / submodule (might be too SQTE specific).
  2. update the clone in the branchapi impl that we do clone recursively.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.