When I sign a git commit, what is my signature actually based on?

I took a look at the function “commit_tree_extended” in the git source code for the file “commit.c” (e.g., in this blob).

Based on reviewing this function, when you sign a commit it seems to be signing a string that contains identifiers for the tree object_id, parent object_id, author, committer, encoding (if not utf-8), commit_extra_header, and the commit message.

git – How can I check the timestamp of a remote commit without cloning the repository?

There is a Git sub-command called ls-remote which allows listing of all the branches and commit hashes of the leaf node/tip of each branch.

How can I also query the timestamp of those commits, or other related information of the commit, without cloning the repo locally? (or, is there no way to do this without cloning the repo)

How do you update a GitHub repo fork in the web interface without creating a merge/squash commit?

All the solutions to syncing fork master to upstream master through GitHub web interface I’ve found suggest ways that will create a new commit in fork master. And that is by definition not syncing because they will differ after this. In theory it should be possible because whenever I use the Edit button on a file in upstream repo it creates a perfectly synced new branch in my fork in a moment. But simply creating a PR for getting upstream master in my fork gives three options:

  • Create a merge commit.: new commit -> Not syncing.
  • Squash and merge: new commit -> Not syncing.
  • Rebase and merge: unavailable even though I didn’t touch the fork master, see screenshot below.

screenshot, the text on it says This branch cannot be rebased due to conflicts. Rebasing the commits of this branch on top of the base branch cannot be performed automatically due to conflicts encountered while reapplying the individual commits from the head branch.

What conflicts? How is it possible? Is there really no way?

Ok, I’m only 99.99% sure I didn’t change the master in my fork, how do I find out which commit is different using CLI on local clone if they do differ?

It’s not a duplicate of How do you update a GitHub repo fork in the web interface? because that one doesn’t require there to be no new commits.

Get commit list between 2 last tags in git – on windows – without knowing the tags

I am trying to get list of commits between the last Tag and the Tag before it

Answers that I see here ( and that I currently use ) are like this:

git log –pretty=oneline TagA…TagB

But this forces me to know the tag numbers that are not available at this part of the build process

thus sometimes this command fails, stopping the build process

Build machine is a Windows machine, I have seen unix related answers

Any way to achieve that ?

performance – MySQL V8 replication lagging waiting for handler commit

let me start with some background.

We’ve decided to upgrade our Master DB to a more performant machine. We got a server with 1.5TB of RAM, Quad Intel(R) Xeon(R) Gold 6254 and IO is all NVMe drives. Our current environment is on MySQL 5.7.30 which is what I installed on this new server. I activated it as a READ server first just to see how it behaves. I based my config on existing master server with added slave flags. After a few days we get complaints of random slow downs in our main application. What we discovered is that slave was lagging but that drop tables seemed to be locking the environment. Took it off the read pool to see if I can figure out the issue

After doing some research we thought the issue was this bug. We were always planning on upgrading to V8 so figured I may as well do it now and get it over with. We upgraded to V8.0.22 and again re-activated the new server on the network. Again after a few days it starts to slow down dropping tables and inserts. Since this is V8 we’re seeing a lot of waiting for handler commit. After researching that state we found some docs saying it may be range_optimizer_max_mem_size the issue. We set it to 0, restarted mysql and waited. A day later slow downs again.

Started looking at the OS (centos 7.8), maybe open files is not enough. Looked and we did set it to over 1M open files. We did notice that we set the rule on the mysql user but systemctl has it’s own setting. Set it at systemctl level (/lib/systemd/system/mysqld.service && /etc/systemd/system/mysqld.service.d/limits.conf) and restarted mysql. A day passes and slow down re-appears. Now though the server can’t even keep up with the replication let alone additional traffic.

I thought it was my multi threaded replication (as we have 4 primary databases) so I dropped it to single threaded. All that did was make show slave status always show Slave_SQL_Running_State: waiting for handler commit.

At this stage I’m just stumped at what’s happening. The new server replication just falling behind more and more and show full processlist always has queries with either waiting for handler commit or checking permissions. What seems the slowest is drop tables though. I can see a drop tables hanging in the process list for 3-5 seconds

State: waiting for handler commit
Info: DROP TABLE IF EXISTS crm.invalidPhoneNumbersCompiled_TMP,crm.invalidPhoneNumbersCompiled_OLD /* generated by server */

We also found this on stackoverflow and went ahead and set all the variables on our server but same result.

On my PMM I can’t see anything out of the ordinary on either OS overview or MySQL overview. The server is practically idle and replication just lagging. IO is idle 99.9% of the time and the load is not even a blip on it.


INNO Engine Status

Sample log

web applications – How to verify a production website corresponds to a certain github repo commit when a company claims they are the same

A company makes their website client side open source and claim that
it is exactly equal to a certain version that can be found in a github repo.

I want to verify their production website (client side) exactly matches the source code.

If I can access their github repo and also the production website via my browser, how can I technically check and verify they match?

bitcoincore development – How do devs decide who should have commit access? what is the process?

Many others have received/lost commit access. How exactly is this decision made? and by who?

Nowadays the decision is generally made by the developers during one of the weekly IRC meetings. This is not done by committee nor a specific group, just whoever is attending the meeting when the topic is brought up. It’s usually the same people at every meeting.

Typically how adding a maintainer works is that someone brings up a topic for adding a maintainer, others nominate a person to be that, and then the group votes. Since in the past there have really only been one person nominated at a time, it’s been a yes/no vote rather than a vote for a candidate. The process is largely informal as the people nominated are typically well known developers and have been around for a while.

For revoking access, the process works pretty much in reverse. Someone brings up a topic to remove access for particular users, typically because they are inactive, and the group votes on whether to do so. There have been a few exceptions to this – Gavin Andresen’s commit access was revoked after concerns that his accounts had been compromised. Since he was also inactive, it was decided to leave his commit access revoked.

Developers may also choose to no longer have commit access in which case their commit access is revoked upon asking.

If the Lead Maintainer unexpectedly died (hope not), but if he did, who would decide upon the next Lead Maintainer and how?

It would pretty much be the same process as adding a new maintainer. This is also likely the same process if the lead maintainer decided to step down. Someone would volunteer or be nominated, likely one of the current maintainers, and then that person is voted on by the group at a meeting.

In general, there is a formal process for adding or removing commit access. It’s generally done by the group of developers attending an IRC meeting with those developers essentially voting yes/no.

vscode git commit +50 carácteres

Alguien ha encontrado como hacer commit en el plugin de VSCODE con más de 50 carácteres?

Estoy buscando por foros / videos pero no encuentro como hacerlo.


GIT LOG: Como buscar um commit através de uma mensagem específica?

Eu gostaria se existe alguma maneira de usar o git log para listar os commits, filtrando através de uma mensagem específica.


git commit -am "Correção do ícone de exclusão na listagem de usuários"

No caso acima, gostaria de aplicar um git log e ver apenas a lista de commits que tivessem a palavra “usuário”.

É possível fazer isso?

Microservice Two-Phase Commit: Transaction coordinator is down in the middle of process

I’ve just read this article, about handling distributed transactions in the microservices world.

In the article, the author explained two possible solutions available.

I’m familiar with SAGA. But never actually tried the Two-Phase Commit pattern.

And here we go with my question:

In the Two-Phase Commit pattern, how to handle data inconsistency if suddenly in the middle of the process, the transaction coordinator service is down? If it happens in the middle of the process, some data on certain services may be updated already.