doc: clarify how assertions work with multiple files, auto postings
This commit is contained in:
		
							parent
							
								
									28b52fcca5
								
							
						
					
					
						commit
						001f3f00a3
					
				| @ -2505,20 +2505,25 @@ updating. This order dependence does bring an advantage: precise | |||||||
| control over the order of postings and assertions within a day, so you | control over the order of postings and assertions within a day, so you | ||||||
| can assert intra-day balances. | can assert intra-day balances. | ||||||
| 
 | 
 | ||||||
| ### Assertions and included files | ### Assertions and multiple included files | ||||||
| 
 | 
 | ||||||
| With [included files](#including-other-files), things are a little | Multiple files included with the [`include` directive](#including-other-files) | ||||||
| more complicated. Including preserves the ordering of postings and | are processed as if concatenated into one file, preserving | ||||||
| assertions. If you have multiple postings to an account on the same | their order and the posting order within each file. | ||||||
| day, split across different files, and you also want to assert the | It means that balance assertions in later files will see balance from earlier files. | ||||||
| account's balance on the same day, you'll have to put the assertion | And if you have multiple postings to an account on the same day, split | ||||||
| in the right file. | across multiple files, and you want to assert the account's balance on | ||||||
|  | that day, you'll need to put the assertion in the right file (the last | ||||||
|  | one in the sequence, probably). | ||||||
| 
 | 
 | ||||||
| ### Assertions and multiple -f options | ### Assertions and multiple -f files | ||||||
| 
 | 
 | ||||||
| Balance assertions don't work well across files specified | Multiple files specified on the command line with multiple `-f/--file` options | ||||||
| with multiple -f options. Use include or [concatenate the files](#input-files) | are processed in sequence, but separately, and balance assertions will not | ||||||
| instead. | see balance from earlier files. This can actually be useful, when you do not | ||||||
|  | want older files to potentially break valid balance assertions in newer files.  | ||||||
|  | If you want assertions to see balance from earlier files, use `include` as above, | ||||||
|  | or [concatenate the files](#input-files) temporarily. | ||||||
| 
 | 
 | ||||||
| ### Assertions and commodities | ### Assertions and commodities | ||||||
| 
 | 
 | ||||||
| @ -2599,9 +2604,21 @@ You can assert the balance including subaccounts by writing `=*` or `==*`, eg: | |||||||
| 
 | 
 | ||||||
| ### Assertions and virtual postings | ### Assertions and virtual postings | ||||||
| 
 | 
 | ||||||
| Balance assertions are checked against all postings, both real and | Balance assertions always consider both real and [virtual](#virtual-postings) postings; | ||||||
| [virtual](#virtual-postings). They are not affected by the `--real/-R` | they are not affected by the `--real/-R` flag or `real:` query. | ||||||
| flag or `real:` query. | 
 | ||||||
|  | ### Assertions and auto postings | ||||||
|  | 
 | ||||||
|  | Balance assertions *are* affected by the `--auto` flag, which | ||||||
|  | generates [auto postings](#auto-postings), which can alter account | ||||||
|  | balances.  Because auto postings are optional in hledger, accounts | ||||||
|  | affected by them effectively have two balances. But balance assertions | ||||||
|  | can only test one or the other of these. So to avoid making fragile | ||||||
|  | assertions, either: | ||||||
|  | 
 | ||||||
|  | - assert the balance calculated with `--auto`, and always use `--auto` with that file | ||||||
|  | - or assert the balance calculated without `--auto`, and never use `--auto` with that file | ||||||
|  | - or avoid balance assertions on accounts affected by auto postings (or avoid auto postings entirely). | ||||||
| 
 | 
 | ||||||
| ### Assertions and precision | ### Assertions and precision | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user