Giter Site home page Giter Site logo

coderefinery / git-collaborative Goto Github PK

View Code? Open in Web Editor NEW
11.0 14.0 42.0 22.62 MB

Collaborative distributed version control lesson.

Home Page: https://coderefinery.github.io/git-collaborative/

License: Creative Commons Attribution 4.0 International

Makefile 20.61% Python 79.39%
git github lesson forking collaborative carpentry-lesson

git-collaborative's Introduction

git-collaborative's People

Contributors

annajiat avatar bast avatar blankdots avatar blindij avatar deinal avatar dhanyapushpadas avatar johanhellsvik avatar jyrsa avatar rantahar avatar rkdarst avatar ropil avatar sabryr avatar sabryr2 avatar samumantha avatar wikfeldt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

git-collaborative's Issues

Suggestion for collaborative exercise with a conflict

Idea by @Jyrsa: pair of pairs, first two pairs of two people start with the same basic repository with some existing files, both groups make concurrent changes, first by making well-contained small branches from master and then submit to each other for review and merging.

Then after the "clean" way has been done they can try doing any of a number of things that will cause merge conflicts and try to resolve them.

05-hook: Add an example

Hooks episode could use at least one example (preferably not esoteric). I don't know any good ones offhand, though.

Mention "git describe"

Example: git describe --abbrev=7 --long --always --dirty=-feature_smudge-clean.

basically it describes the current state of the repo using the closest tag in history.
so assuming you tag meaningfully what you'd read from a git describe is:
closest tag followed by number of commits current revision has on top
followed by SHA1 of current commit (abbreviated by default)
optionally, if you're in a dirty state you can add a suffix with --dirty
(which by default add -dirty, but you can choose whatever).

(thanks to Roberto for the hint!)

Does protip of `set-url --push` need to be in 03-distributed?

Does the pro-tip in 03-distributed about separate push URLs need to be there? We don't use it anywhere, and it can probably be a bit confusing. (I've been confused by it when I didn't realize I had a separate push URL). But in at practical tips section it could be nice to mention as advanced material.

Related, does anyone use this often? I have once or twice, but I have a feeling that perhaps I should more often.

Episode 03-distributed type-along doesn't need to be in a group

It seems that the type-along in 03-distributed doesn't need to be done in a group. In fact, while helping I was confused because it took some time for me to figure out why it said to break into groups... it was something in automated testing that did the mutual forking and accepting of PRs.

Forking vs. centralized

Forking workflow is standard for open source projects but may be overkill for small closed-source projects. Discuss recommended workflows for closed source projects. Who should be the maintainer? Emphasize better that central workflow is also fine provided we use protected branches.

Explain upstream

I know that popular support is to circumvent going in to details about upstream. But I felt during todays lecture if we explicitly address this rather than avoiding, learners would have a better understanding of the events.

Add Star Wars quote

Luke Skywalker: You know, I did feel something. I could almost see the remote.

Ben Kenobi: That's good. You've taken your first step into a larger world.

(from Star Wars Episode IV - A New Hope)

Cheers to @Jyrsa for the catch!

Check whether bare/nonbare episode is still needed

I just did few tests on my hard drive with bare/nonbare and some of my assumptions about it were wrong. I need to test a bit more but possibly we can avoid that part all together. Opening this issue so that I won't forget.

when inviting everyone to repo, use invite link instead

all participants need to be invited to the centralized-workflow-exercise, and it seems simpler to click "copy invite link" and paste it in the shared workshop document. the link is the same for all invited users and following it leads directly to an "accept this invitation" page

In the tweet exercise add travis test

Here participants don't have to prepare anything and it will test in the background, e.g. length of the tweet. With this people can discover Travis early in the course.

Cannot delete repositories in coderefinery

The lesson requires to be able to delete two repositories before a workshop:

I cannot delete these two repositories.

This method forbids us to have several workshops simultaneuously and also requires anyone to get access to coderefinery organization.

Should we prefer each of us to import the template repositories to our own github username?

Motivate code review

Mainly code quality but also collaborative learning but do not drop the quality aspect.

Introduce terms before mentioning

In branch design topic git bisect was mentioned in the beginning, but at this point git bisect was not introduced yet. In my opinion good to briefly tell what git bisect actually is.

Add examples to 04-collaborative

04-collaborative could link to some real projects and use them as examples. Could be as simple as for each suggestion, linking to a thread demonstrating that. Or could make the section more example-based.

Instructor instructions

  • ensure the instructor or someone there has access to add collaborators to the CR centralized-workflow-exerciserepo. You can use a fork but people will use the wrong one (unless the instructions are updated) and it will be a big mess!
  • People really have to sit next to someone, so that they can see the screens. From the beginning.
  • Emphasize use of git graph a lot, just like in git-intro

This issue will be edited.

Adjust timing

Central repo now takes more time, since we go in detail through PRs but the distributed section will now take a lot less time since many concepts are revisited.

ssh key generation and usage

This seems to be missing. This is probably the best place to put it, not git-intro.

By the way, mac laptops worked the same as linux - ssh-agent was automatically running and you could just ssh-keygen with password and ssh-add and it Just Works. Remind people to run ssh-add next time (unless it automatically adds these days).

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.