18 Mar 2026
Planet Mozilla
Olivier Mehani: Git: ignoring temporary changes
One can use git add [-N|--intent-to-add] <PATH> to record that a new path will need to be considered in later additions to the index. But what about the other way round? How to tell git that a change SHOULD NOT be considered?
tl;dr: git update-index --assume-unchanged <PATH>
![Screenshot of a terminal. ``` [17:33:58] ~/src/tests/assume-unchanged$ echo a > a 0s main [17:34:01] ~/src/tests/assume-unchanged$ git status 0s ✭ main On branch main No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) a nothing added to commit but untracked files present (use "git add" to track) [17:34:05] ~/src/tests/assume-unchanged$ git add -N a 0s ✭ main [17:34:07] ~/src/tests/assume-unchanged$ git status 0s main On branch main No commits yet Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) new file: a no changes added to commit (use "git add" and/or "git commit -a") [17:34:08] ~/src/tests/assume-unchanged$ git add -p 0s main diff --git a/a b/a new file mode 100644 index 0000000..7898192 --- /dev/null +++ b/a @@ -0,0 +1 @@ +a (1/1) Stage addition [y,n,q,a,d,e,p,P,?]? y [17:34:11] ~/src/tests/assume-unchanged$ git commit -m 'a' 2s ✚ main [main (root-commit) 023d084] a 1 file changed, 1 insertion(+) create mode 100644 a ```](https://blog.narf.ssji.net/wp-content/uploads/sites/3/2026/03/2026-03-18T1734154333917131100.png)
Fortunately, there is the git update-index(1) command. Amongst (many) other options, it supports --assume-unchanged <PATH>. This will tell git to ignore current and any further changes to this <PATH>, until --no-assume-unchanged is used.
![Screenshot of a terminal. ``` [17:36:00] ~/src/tests/assume-unchanged$ echo b > a 0s main [17:36:02] ~/src/tests/assume-unchanged$ git status 0s ✹ main On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: a no changes added to commit (use "git add" and/or "git commit -a") [17:36:03] ~/src/tests/assume-unchanged$ git update-index --assume-unchanged a [17:36:10] ~/src/tests/assume-unchanged$ git status 0s main On branch main nothing to commit, working tree clean [17:36:12] ~/src/tests/assume-unchanged$ echo c > a 0s main [17:36:14] ~/src/tests/assume-unchanged$ git status 0s main On branch main nothing to commit, working tree clean [17:36:15] ~/src/tests/assume-unchanged$ git update-index --no-assume-unchanged a [17:36:18] ~/src/tests/assume-unchanged$ git status 0s ✹ main On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: a no changes added to commit (use "git add" and/or "git commit -a") ```](https://blog.narf.ssji.net/wp-content/uploads/sites/3/2026/03/2026-03-18T1736209147243461100.png)
This abuses the initial purpose of the assume-unchanged logic, but it's handy for when you want test changes to survive for a bit longer, without risking committing them when git adding in wild abandon. Also, a footgun for when you think your repository is clean, but it has some magic in an assumed-unchanged file you forgot about. You can use git ls-files -v to check the status of your files (h is assumed unchanged, H is normal behaviour).
![Screenshot of a terminal. ``` [17:46:02] ~/src/tests/assume-unchanged$ git ls-files -v 0s ✹ main H a [17:46:06] ~/src/tests/assume-unchanged$ git update-index --assume-unchanged a [17:46:13] ~/src/tests/assume-unchanged$ git ls-files -v 0s main h a [17:46:14] ~/src/tests/assume-unchanged$ git update-index --no-assume-unchanged a [17:48:00] ~/src/tests/assume-unchanged$ git ls-files -v 0s ✹ main H a ```](https://blog.narf.ssji.net/wp-content/uploads/sites/3/2026/03/2026-03-18T1748289562047631100.png)
The post Git: ignoring temporary changes first appeared on Narf.
18 Mar 2026 6:53am GMT
This Week In Rust: This Week in Rust 643
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
Newsletters
Project/Tooling Updates
- loadgen-rs - h2load-compatible HTTP benchmark client written in Rust, supporting HTTP/1.1, HTTP/2, and HTTP/3 (QUIC)
- Introducing pgtui, a Postgres TUI client
- Avian Physics 0.6
- Vite 8.0 is out!
- Building Rust Procedural Macros Without quote!: Introducing zyn
- bnum v0.14.0: a lot of big improvements!
- ClawShell: Secure the OpenClaw using OS-level primitives
- Giff v1.1.0: A terminal UI for git diffs with interactive rebase support
- mdterm v1.5.0: A terminal-based Markdown browser
- flodl - A Rust-native deep learning framework built on libtorch
- Cot v0.6: Lazy Underneath
Observations/Thoughts
- Summary - Rust Project Perspectives on AI
- How to use storytelling to fit inline assembly into Rust
- Why WebAssembly components
- yes, all longest regex matches in linear time is possible
- Accessing Hardware in Rust
- [audio] Netstack.FM episode 31 - Protocol Shorts: MITM Proxies and Transparent L4 Interception
- [video] Rust-powered SpacetimeDB is 1000x Faster? Founder Explains
Rust Walkthroughs
- Building small and secure Docker images for Rust: scratch vs alpine vs debian
- Patching LMDB: How We Made Meilisearch's Vector Store 333% Faster
- Creating a DAW in Rust - Playing Audio
- How to Check Code Coverage in Rust
- [video] RustCurious lesson 4: Structs and Resources - Copy vs Clone vs Move
Miscellaneous
Crate of the Week
This week's crate is grab, a command-line tool to quickly convert CSV to JSON.
Thanks to Gábor Maksa for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.
If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
No calls for testing were issued this week by Rust, Cargo, Rustup or Rust language RFCs.
Let us know if you would like your feature to be tracked as a part of this list.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on Bluesky or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
- Oxidize Conference | CFP open until 2026-03-23 | Berlin, Germany | 2026-09-14 - 2026-09-16
- EuroRust | CFP open until 2026-04-27 | Barcelona, Spain | 2026-10-14 - 2026-10-17
- NDC Techtown 2026 | CFP open until 2026-05-03 | Kongsberg, Norway | 2026-09-21 - 2026-09-24
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on Bluesky or Mastodon!
Updates from the Rust Project
427 pull requests were merged in the last week
Compiler
Library
- add
Fromimpls for wrapper types - in
Option::get_or_insert_with(), forget theNoneinstead of dropping it - fixed
VecDeque::splice()not filling the buffer correctly when resizing the buffer on start = end range
Cargo
CARGO_TARGET_DIRdoesn't have to be relativeshell: Support OSC 9;4 progress on ptyxiscompile: Stop on denying warnings without --keep-going- avoid panic for package specs with an empty fragment
- util: exclude from iCloud Drive sync on macOS
Rustdoc
Clippy
- fix
match_same_armsfalse positive with associated consts - fix:
question_marksuggestion caused error - refactor implementation of
unnecessary_{option,result}_map_or_else
Rust-Analyzer
- don't trigger GC on slow tests
- SCIP generation should prime caches in parallel
- add naming convention validation for
uniontypes - handle multi-byte UTF-8 identifiers in
NameGenerator::suggest_name - infer generic args for trait ref and its assoc type
- remove angle brackets if all lifetime args removed in inline type alias code assist
- replace make usage with SyntaxFactory in few ide-assists utils methods
Rust Compiler Performance Triage
Another fairly quiet week, with few changes and overall neutral performance.
Triage done by @simulacrum. Revision range: 3945997a..5b61449e
1 Regression, 1 Improvement, 2 Mixed; 3 of them in rollups 35 artifact comparisons made in total
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- No RFCs were approved this week.
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
No Items entered Final Comment Period this week for Cargo, Language Team or Unsafe Code Guidelines.
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
- Crate deletion allowances
- Avoid linting
unreachable_codeontodo!() - Propose the Rust Foundation Maintainer fund
Upcoming Events
Rusty Events between 2026-03-18 - 2026-04-15 🦀
Virtual
- 2026-03-18 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-03-18 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-03-18 | Virtual (Girona, ES) | Rust Girona
- 2026-03-19 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-03-20 | Virtual | Packt Publishing Limited
- 2026-03-24 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-03-24 | Virtual (London, UK) | Women in Rust
- 2026-03-25 | Virtual (Girona, ES) | Rust Girona
- 2026-03-26 | Virtual (Berlin, DE) | Rust Berlin
- 2026-04-01 | Virtual (Girona, ES) | Rust Girona
- 2026-04-01 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-04-02 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-04-04 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-04-09 | Virtual (Berlin, DE) | Rust Berlin
- 2026-04-14 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-14 | Virtual (London, GB) | Women in Rust
- 2026-04-15 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Asia
- 2026-03-19 | Seoul, KR | Seoul Rust (Programming Language) Meetup
- 2026-03-22 | Tel Aviv-yafo, IL | Rust 🦀 TLV
- 2026-03-28 | Delhi, IN | Rust Delhi
Europe
- 2026-03-18 | Dortmund, DE | Rust Dortmund
- 2026-03-19 - 2026-03-20 | Warsaw, PL | Rustikon
- 2026-03-23 | Augsburg, DE | Rust Meetup Augsburg
- 2026-03-23 | Amsterdam, NL | Open Source SecurityCon
- 2026-03-24 | Aarhus, DK | Rust Aarhus
- 2026-03-24 | Manchester, UK | Rust Manchester
- 2026-03-24 | Trondheim, NO | Rust Trondheim
- 2026-03-25 | Dresden, DE | Rust Dresden
- 2026-03-26 | Paris, FR | Rust Paris
- 2026-03-27 | Paris, FR | Rust in Paris
- 2026-03-28 | Stockholm, SE | Stockholm Rust
- 2026-04-01 | Berlin, DE | Rust Berlin
- 2026-04-01 | Oxford, UK | Oxford ACCU/Rust Meetup.
- 2026-04-02 | London, GB | Rust London User Group
- 2026-04-07 | Basel, CH | Rust Basel
- 2026-04-09 | Geneva, CH | Rust Meetup Geneva
- 2026-04-09 | Oslo, NO | Rust Oslo
North America
- 2026-03-18 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-03-19 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-03-19 | Mountain View, CA, US | Hacker Dojo
- 2026-03-19 | Nashville, TN, US | Music City Rust Developers
- 2026-03-19 | New York, NY, US | Rust NYC
- 2026-03-21 | Boston, MA, US | Boston Rust Meetup
- 2026-03-25 | Austin, TX, US | Rust ATX
- 2026-03-25 | New York, NY, US | Rust NYC
- 2026-03-26 | Atlanta, GA, US | Rust Atlanta
- 2026-04-02 | Saint Louis, MO, US | STL Rust
- 2026-04-09 | San Diego, CA, US | San Diego Rust
- 2026-04-14 | Charlottesville, VA, US | Charlottesville Rust Meetup
Oceania
- 2026-03-26 | Melbourne, AU | Rust Melbourne
South America
- 2026-03-21 | São Paulo, BR | Rust São Paulo Meetup
- 2026-04-11 | Argentina, AR | Oxidar Org
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
What we collectively build, beyond the code artifacts that the compiler+tools are, is a group of people who come back, who learn, who share their understanding, who align their tastes, who take input from the community, etc etc. Merging an LLM-generated PR feeds only the "we have code that works" part of the Project; it's not participating in all the other feedback cycles that make the project alive.
- Nadrieril on the Rust Project Perspectives on AI
Despite another week without a suggestion, llogiq is pleased with his choice.
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation
18 Mar 2026 4:00am GMT
17 Mar 2026
Planet Mozilla
Thunderbird Blog: VIDEO: Meet the New Support Team!

Welcome to the first Community Office Hours of 2026! We're all recovered from conferences in Brussels and California, and we're talking to members of one of our newest teams: Support.
Wait, hasn't Thunderbird always had a support team? Surprisingly, no! We've had individual staff members responsible for different parts of our support efforts, but never combined into one fantastic team. This includes new hires Lisa (Jill) Wess, Manager of Customer Support Operations, and MadHatter McGinnis, Support Knowledge and Enablement Lead, whose work is not only vital for Thundermail, but a better experience for donors, users, and contributors alike. We're also joined by Roland Tanglao and Wayne Mery, two of our longstanding support and community staff who you might remember from our office hours on writing support articles and helping users on the support forums.
Community Office Hours are just getting started this year. Thank you so much for joining us for these sneak peeks into how we make, improve, and expand Thunderbird! As always, if you have any ideas for future office hours topics, let us know in the comments!
A New Model for Support
While Lisa and MadHatter have only been at Thunderbird for less than a year, the impact they've made since then is notable. When Thundermail launches later this year, users will experience their work when they read a user guide, ask for support, or make a suggestion on ideas.tb.pro. This renewed focus on support won't only be for Thundermail users, however! In the video, the members of the support team discuss how the team wants to make it easier to get help AND easier to provide it, whether the person answering questions is a staff member or a volunteer contributor. No matter what technical improvements the team has planned, human beings will always be at the heart of the Thunderbird (and Thundermail) support experience.
This includes the existing Thunderbird support on the Mozilla Support forums. As always, there is so much our community can do to help out fellow Thunderbird users with questions or issues they might have. Roland and Wayne offer useful tips on where to get started on the support contributor journey. One path that might be new to readers is suggesting improvements or new knowledge base (KB) articles! If you have ideas on replacing outdated advice, updating screenshots, or ways to fill knowledge gaps with a new KB article, we'd love to hear from you, whether your advice is about the desktop or Android client.
VIDEO (Also on Peertube):
Resources:
Resources for Suggesting Features:
Thunderbird on Desktop and Mobile - https://connect.mozilla.org
Thundermail and Thunderbird Pro - https://ideas.tb.pro
Resources for Becoming a Community Support Contributor:
Join the Support Crew Matrix Channel - https://matrix.to/#/#tb-support-crew:mozilla.org
Learn How to Write Support Articles - https://blog.thunderbird.net/2024/07/video-learn-about-thunderbird-support-articles-and-how-to-contribute/
Learn How to Help Support Forum Users - https://blog.thunderbird.net/2024/08/video-how-to-answer-thunderbird-questions-on-mozilla-support/
Provide Feedback on Desktop Support Articles - https://github.com/thunderbird/knowledgebase-issues/issues
Provide Feedback on Android Support Articles - https://github.com/thunderbird/android-knowledgebase-issues/issues
Already a SUMO Contributor? Join the Contributor Discussion Forum - https://support.mozilla.org/forums/contributors/
Resources for Getting Help with Thunderbird:
Thunderbird for Android Support Channel (Matrix) - https://matrix.to/#/#tb-android:mozilla.org
Thunderbird Desktop Support Channel (Matrix) - https://matrix.to/#/#thunderbird:mozilla.org
The post VIDEO: Meet the New Support Team! appeared first on The Thunderbird Blog.
17 Mar 2026 10:05pm GMT