News for hackers. Stuff that matters.
Re:Git-SIM: Visually simulate Git operations in your own rep... by counttheforks on Sunday January 22, 2023 @04:55PM (#34482651)
Can you learn material sciences in an afternoon of minimal effort?
Re:Git-SIM: Visually simulate Git operations in your own rep... by TylerE on Sunday January 22, 2023 @06:05PM (#34483293)
No, and neither can one learn git in an afternoon.
Re:Git-SIM: Visually simulate Git operations in your own rep... by counttheforks on Monday January 23, 2023 @09:02AM (#34488796)
Speak for yourself.
Re:Git-SIM: Visually simulate Git operations in your own rep... by pdimitar on Wednesday January 25, 2023 @03:39PM (#34523854)
We speak for more than one person and you should stop pretending otherwise.

Obviously not everyone can learn it quickly. That's a fact. Denying it is ruining the forum discourse.

Re:Git-SIM: Visually simulate Git operations in your own rep... by pdimitar on Monday January 23, 2023 @05:54AM (#34487391)
GIT can't be learned quickly by everyone. I for example haven't needed a graph DB even once throughout a 21 years of career.
Re:Git-SIM: Visually simulate Git operations in your own rep... by maccard on Monday January 23, 2023 @08:47AM (#34488647)
No, and you can't learn git in an afternoon either. Here's a very very simple scenario. You and I are working on a fork of a project. You make a branch and push it. I want to update an unrelated branch with the changes from the fork, so I follow [0] (note all of the various adjustments in the comments), and suddenly git switch doesn't work for your branch anymore.

Git has dozens of failure modes like this where the behaviour is completely unintuitive unless you understand the internals of git.

[0] https://stackoverflow.com/questions/7244321/how-do-i-update-...

Re:Git-SIM: Visually simulate Git operations in your own rep... by counttheforks on Monday January 23, 2023 @09:24AM (#34489062)
Not sure what you're going on about. I tried replicating what you describe, but `git switch` keeps working just fine.

    ~/tmp/foo git init repo1
    Initialized empty Git repository in /home/user/tmp/foo/repo1/.git/
    ~/tmp/foo cd repo1
    tmp/foo/repo1 ‹master› echo hi > hi
    tmp/foo/repo1 ‹master› git add hi
    tmp/foo/repo1 ‹master*› git commit -m hi
    [master (root-commit) d0cf572] hi
    1 file changed, 1 insertion(+)
    create mode 100644 hi
    tmp/foo/repo1 ‹master› cd ..
    ~/tmp/foo git clone repo1 repo2
    Cloning into 'repo2'...
    done.
    ~/tmp/foo cd repo1
    tmp/foo/repo1 ‹master› echo hi2 > hi 
    tmp/foo/repo1 ‹master*› git add hi
    tmp/foo/repo1 ‹master*› git commit -m hi2
    [master 3a82bdc] hi2
    1 file changed, 1 insertion(+), 1 deletion(-)
    tmp/foo/repo1 ‹master› git checkout -b someotherbranch
    Switched to a new branch 'someotherbranch'
    tmp/foo/repo1 ‹someotherbranch› git 
    tmp/foo/repo1 ‹someotherbranch› echo otherchange > otherchange
    tmp/foo/repo1 ‹someotherbranch› git add otherchange 
    tmp/foo/repo1 ‹someotherbranch*› git commit -m "otherchange"
    [someotherbranch 99ec880] otherchange
    1 file changed, 1 insertion(+)
    create mode 100644 otherchange
    tmp/foo/repo1 ‹someotherbranch› cd ../repo2
    tmp/foo/repo2 ‹master› git remote add upstream ../repo1 
    tmp/foo/repo2 ‹master› git fetch upstream
    remote: Enumerating objects: 8, done.
    remote: Counting objects: 100% (8/8), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (6/6), 448 bytes | 448.00 KiB/s, done.
    From ../repo1
    * [new branch]      master          -> upstream/master
    * [new branch]      someotherbranch -> upstream/someotherbranch
    tmp/foo/repo2 ‹master› git checkout master
    Already on 'master'
    Your branch is up to date with 'origin/master'.
    tmp/foo/repo2 ‹master› git rebase upstream/master
    Successfully rebased and updated refs/heads/master.
    tmp/foo/repo2 ‹master› git switch someotherbranch
    branch 'someotherbranch' set up to track 'upstream/someotherbranch'.
    Switched to a new branch 'someotherbranch'